LINUX.ORG.RU
ФорумAdmin

Оптимальные record size для базы данных oracle (ext4, zfs)

 , , , ,


0

2

Товарищи, тут одна из баз данных, не особо сильно нагруженная (на мой взгляд), не прилично много читает.

Анамнез:

Запускаем на гипервизоре, на часок, вот такое:

iotop -obPat

Получаем цифру, что вся вирт. машина за час прочитала 300 гигов… У меня б… , база 150гб весит…

Схема работы всего хозяйства:

  • zvol - 8k (8 килобайт) ++++ Включено сжатие! (в этом режиме, zfs, вроде как может делать переменным размер блока)
  • FS - 4096 (4 килобайта)
  • ORA - 8192 (8 килобайт)

Разделы выровнены (по идее…).

Что может быть не так в моей схеме (что приводит к такому гигантскому чтению), или, в целом, всё адекватно? У меня пользователи строили отчеты в это время.

Так же, подозреваю, что, вероятно, нужно больше ОЗУ для кешей (Oracle), тогда кол-во чтения, заметно упадет…

★★★★★

Последнее исправление: DALDON (всего исправлений: 1)
Ответ на: комментарий от anonymous

Средняя температура по больнице? А какой из больных самый горячий?

Ну да, средняя. Согласен. В контексте, имеет ли zfs паразитные чтения? - Вроде норм метод. iostat, показал, что да. Имеет чтение и запись - всего около гига чисто для нужд zfs ушло за всё это время. :) Тухлый вариант для общего понимания вопроса?

DALDON ★★★★★
() автор топика
Последнее исправление: DALDON (всего исправлений: 2)
Ответ на: комментарий от DALDON

Ну во-первых, если у тебя SSD - нафига тебе secondarycache?
Выключить secondarycache=none
Опять же - primarycache=metadata сделать
prefetch тоже выключить - все это можно сделать на лету
Кроме того, нужны параметры датасета, а не пула - они могут отличаться

anonymous
()
Ответ на: комментарий от anonymous

Ну во-первых, если у тебя SSD - нафига тебе secondarycache? Выключить secondarycache=none Опять же - primarycache=metadata сделать prefetch тоже выключить - все это можно сделать на лету Кроме того, нужны параметры датасета, а не пула - они могут отличаться

В моём случае не должны отличаться.

Ок! Понял! Ближе к выходным погляжу! Спасибо!

DALDON ★★★★★
() автор топика
Ответ на: комментарий от DALDON

Чтобы оракл не читал и не писал сквозь системный кеш, надо чтобы он использовал directio:

select value from v$parameter where name='filesystemio_options';

Если значение не setall или directio, то поменяй на setall:

alter system set filesystemio_options=setall scope=spfile;

и перезапусти экземпляр оракла.

iliyap ★★★★★
()
Ответ на: комментарий от iliyap

В среде виртуализации это может не сработать, а только ухудшит ситуацию
Обычно в таком случае ставят NONE или ASYNCH

anonymous
()
Ответ на: комментарий от iliyap

Чтобы оракл не читал и не писал сквозь системный кеш, надо чтобы он использовал directio:

Как уже подсказали на форуме ораклистов, это у меня не системный кеш, а вполне себе кеш sga. И дали пруф. Так что с кешем у меня проблемы нету. В общем, мой вопрос лежит выше уровня fs и выше уровня ОС, похоже. Сам оракл читает как-то странно… Или апликация заставляет его так читать.

DALDON ★★★★★
() автор топика
Последнее исправление: DALDON (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.