Форум OlegON > Компьютеры и Программное обеспечение > Операционные системы и программное обеспечение > Oracle

I/O calibration в Oracle (тестирование производительности дисковой подсистемы) : Oracle

28.03.2024 20:05


27.01.2016 10:43
OlegON
 
Достаточно часто требуется хотя бы приблизительно оценить или сравнить производительность дисковой подсистемы. Неразбирающиеся люди запускают какой-нибудь тотал коммандер и копируют файл. На самом деле интересует работоспособность дисков при доступе из БД (со своим кешированием) и не в один поток.

Для начала убедитесь, что параметры БД выставлены в следующее значение (странно, если они у вас какие-то другие)
timed_statistics=true
FILESYSTEMIO_OPTIONS=setall
нижеследующий запрос должен показать асинхронный доступ к файлам
SQL код:
select name,asynch_io from v$datafile f,v$iostat_file i where f.file#=i.file_no and (filetype_name='Data File' or filetype_name='Temp File'); 
После этого необходимо запустить калибровку
SQL код:
DBMS_RESOURCE_MANAGER.CALIBRATE_IO (<DISKS>, <MAX_LATENCY>, iopsmbpslat); 
например, так
SQL код:
SET SERVEROUTPUT ON
DECLARE
  
lat  INTEGER;
  
iops INTEGER;
  
mbps INTEGER;
BEGIN
   DBMS_RESOURCE_MANAGER
.CALIBRATE_IO (210iopsmbpslat);
  
DBMS_OUTPUT.PUT_LINE ('max_iops = ' || iops);
  
DBMS_OUTPUT.PUT_LINE ('latency  = ' || lat);
  
dbms_output.put_line('max_mbps = ' || mbps);
end
в результате будет приблизительно следующее
Цитата:
max_iops = 7104
latency = 10
max_mbps = 784
или какие там на вашей хранилке цифры
Если вдруг забудете результаты, их можно посмотреть в таблице DBA_RSRC_IO_CALIBRATE
27.01.2016 10:45
OlegON
 
Может, неочевидно, но запускать надо на простаивающей БД, а не в разгар рабочего дня.
27.01.2016 10:51
OlegON
 
Ход процедуры можно увидеть в V$IO_CALIBRATION_STATUS, только там минимум информации...
28.01.2016 10:19
OlegON
 
вот у клиента на SSD

max_iops = 53503
latency = 0
max_mbps = 1809
11.08.2016 21:34
Occul
 
А у меня этот тест показал
Цитата:
max_iops = 520
latency = 10
max_mbps = 223
что это значит?
12.08.2016 07:14
OlegON
 
Многие проигнорировали тему, а совершенно зря. Если чем-то и проверять производительность сервера, то именно этим тестом. Я его добавлю в оптимизатор в ближайшее время.

Суть показателей следующая: max_iops определяет, насколько сервер готов работать с большим количеством клиентов, а max_mbps - насколько готов с большими объемами данных поработать. Многие не обращают внимание на max_iops, а ведь это важнейший показатель, определяющий, насколько много операций может выполнить контроллер диска в секунду. У меня сейчас среди прочих есть ситуация, когда рейд работает достаточно шустро, НО, больше 2500 iops в нем не может быть по заводским характеристикам. В итоге, получаем полную... В общем, если пара отчетов спустится из кеша на диск или попытаешься скопировать архивлоги с него, все, сервак на коленях, больше 15Мб/сек не может. В один поток - отлично, живет, выдает 150Мб/сек без синтетики.

Я бы предложил выкладывать сюда свои результаты в виде:
Результаты теста
Количество клиентов на базе, размер базы, удовлетворенность скоростными показателями.

Это поможет при выборе дисковых носителей в дальнейшем.
28.08.2016 20:41
Kryukov
 
Calibration I/O : 1070 IO/s - 128 MB/s
опт пишет
25 клиентов база 120Г все шустро
29.08.2016 07:22
Ferus
 
На тестовой машине
max_iops = 105
latency = 8
max_mbps = 58



latency(задержка)
Олег, а за что отвечает этот параметр?
29.08.2016 07:33
OlegON
 
Это не параметр, а показатель. Типа "дай блок" и засекаем. Скорость отклика диска. Чем меньше, тем лучше. У тебя, думаю, на магазинный сервак с одним юзером, ну, может, двумя максимум.
29.08.2016 11:22
Ferus
 
Это обычная машинка с i5 и обычными винтами. Я на ней работаю, ну и соответственно на ней же разворачиваю базы для тестов. Медленно работает, но не на живой же базе эксперименты ставить :)

Завтра проверю на одном из магазинов, на сервере ЦО. У них по моему мнению как-раз таки проблемы с IO. Много wait'ов на последовательном и параллельном чтении. Для обычной работы вроде хватает производительности, а вот ТД считается долго(в районе 4-5 часов). Мое предположение, загибается либо винты, либо raid контроллер глючит.
Часовой пояс GMT +3, время: 20:05.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.