Форум по программам и оборудованию > > >

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

27.05.2018 15:00


[ОТВЕТИТЬ]
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 контроллер глючит.
29.08.2016 21:56
Starter
 
max_iops = 49402
latency = 2
max_mbps = 824

Зеркало 2 * Intel® SSD DC S3500 Series (120GB, 2.5in SATA 6Gb/s, 20nm, MLC)
Контроллер: LSI MegaRAID SAS 9260-4i
30.08.2016 07:05
OlegON
 
Хорошо бы, для последователей, обозначать нагрузку и степень удовлетворенности, как массив с ней справляется...
22.09.2016 15:12
Kryukov
 
Calibration I/O : 104688 IO/s - 822 MB/s
один диск SSD INTEL DC P3700 SSDPEDMD800G401 800Гб, PCI-E AIC (add-in-card)
11.07.2017 21:56
OlegON
 
Вот, народ форум не читает... Под ЦО поставили сервер... 48Гб памяти, но ... диски...

Calibration I/O : 163 IO/s - 115 MB/s

Запомните, такое под СУБД нельзя брать. В один поток копирование вроде минимум держит, а вот если база на диск сядет, сервер враз на коленки и скорость ввода-вывода до 2Мб/сек падает.
27.07.2017 10:34
OlegON
 
27.07.17 10:31:18 -- Calibration I/O : 35258 IO/s - 1528 MB/s
видно, что диски расчитаны больше на работу линейно, а не с базой...
Опции темы


Часовой пояс GMT +3, время: 15:00.

 

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