none
Производительности дисковой подсистемы HP Proliant ML350p Gen8 RRS feed

  • Вопрос

  • Здравствуйте, уважаемые коллеги!

    Имеется сервер HP Proliant ML350p Gen8 с контроллером Smart Array P420i.

    Два логических диска. Один RAID 1, второй на RAID5.

    Все диски - SATA, 1 Tb.

    База расположена на втором диске. Речь идет о SQL Server 2012 (установка по-умолчанию) под Windows Server 2008 R2.

    Установлены два Xeon 2.5 GHz, 32 Gb ОЗУ.

    Сервер используется для обслуживания сервера предприятия 1С.

    Заметил, что при обновлении конфигурации сервер долго делает эту процедуру.

    Проверил железо - с железом проблем нет.

    Запустил SQLIO с файлом объемом 2 Гб (кэш контроллера - 1 Гб).

    Вот тут он показал интересное: в некоторых запросах отклик с более чем 24 секунды является доминирующим на гистограмме.

    Сервер такой один, сравнить не с чем. Подскажите, пожалуйста, нормальная ли это ситуация, или с железом по производительности есть какая-то проблема или узкое место? К сожалению, опыт эксплуатации SQL-сервера с относительно высокой нагрузкой небольшой, а есть опасения, что, когда сервер заработает в промышленной эксплуатации, то все будет тормозить.

    C:\Program Files (x86)\SQLIO>sqlio -kW -s10 -frandom -o8 -b8 -LS -Fparam.txt 
    sqlio v1.5.SG
    using system counter for latency timings, 2435322 counts per second
    parameter file used: param.txt
    	file d:\testfile.dat with 2 threads (0-1) using mask 0x0 (0)
    2 threads writing for 10 secs to file d:\testfile.dat
    	using 8KB random IOs
    	enabling multiple I/Os per thread with 8 outstanding
    size of file d:\testfile.dat needs to be: 2147483648 bytes
    current file size:	0 bytes
    need to expand by:	2147483648 bytes
    expanding d:\testfile.dat ... done.
    using specified size: 2048 MB for file: d:\testfile.dat
    initialization done
    CUMULATIVE DATA:
    throughput metrics:
    IOs/sec:  6359.60
    MBs/sec:    49.68
    latency metrics:
    Min_Latency(ms): 0
    Avg_Latency(ms): 2
    Max_Latency(ms): 187
    histogram:
    ms: 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24+
    %: 93  1  2  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  3
    
    C:\Program Files (x86)\SQLIO>sqlio -kW -s360 -frandom -o8 -b64 -LS -Fparam.txt 
    sqlio v1.5.SG
    using system counter for latency timings, 2435322 counts per second
    parameter file used: param.txt
    	file d:\testfile.dat with 2 threads (0-1) using mask 0x0 (0)
    2 threads writing for 360 secs to file d:\testfile.dat
    	using 64KB random IOs
    	enabling multiple I/Os per thread with 8 outstanding
    using specified size: 2048 MB for file: d:\testfile.dat
    initialization done
    CUMULATIVE DATA:
    throughput metrics:
    IOs/sec:   543.53
    MBs/sec:    33.97
    latency metrics:
    Min_Latency(ms): 0
    Avg_Latency(ms): 29
    Max_Latency(ms): 12219
    histogram:
    ms: 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24+
    %: 38  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  1  1  1 55
    
    C:\Program Files (x86)\SQLIO>sqlio -kW -s360 -frandom -o8 -b128 -LS -Fparam.txt 
    sqlio v1.5.SG
    using system counter for latency timings, 2435322 counts per second
    parameter file used: param.txt
    	file d:\testfile.dat with 2 threads (0-1) using mask 0x0 (0)
    2 threads writing for 360 secs to file d:\testfile.dat
    	using 128KB random IOs
    	enabling multiple I/Os per thread with 8 outstanding
    using specified size: 2048 MB for file: d:\testfile.dat
    initialization done
    CUMULATIVE DATA:
    throughput metrics:
    IOs/sec:   502.84
    MBs/sec:    62.85
    latency metrics:
    Min_Latency(ms): 0
    Avg_Latency(ms): 31
    Max_Latency(ms): 201
    histogram:
    ms: 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24+
    %: 38  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 56
    
    C:\Program Files (x86)\SQLIO>sqlio -kW -s360 -frandom -o8 -b256 -LS -Fparam.txt 
    sqlio v1.5.SG
    using system counter for latency timings, 2435322 counts per second
    parameter file used: param.txt
    	file d:\testfile.dat with 2 threads (0-1) using mask 0x0 (0)
    2 threads writing for 360 secs to file d:\testfile.dat
    	using 256KB random IOs
    	enabling multiple I/Os per thread with 8 outstanding
    using specified size: 2048 MB for file: d:\testfile.dat
    initialization done
    CUMULATIVE DATA:
    throughput metrics:
    IOs/sec:   439.86
    MBs/sec:   109.96
    latency metrics:
    Min_Latency(ms): 0
    Avg_Latency(ms): 35
    Max_Latency(ms): 165
    histogram:
    ms: 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24+
    %: 28  9  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 59
    
    C:\Program Files (x86)\SQLIO>sqlio -kW -s360 -fsequential -o8 -b8 -LS -Fparam.txt 
    sqlio v1.5.SG
    using system counter for latency timings, 2435322 counts per second
    parameter file used: param.txt
    	file d:\testfile.dat with 2 threads (0-1) using mask 0x0 (0)
    2 threads writing for 360 secs to file d:\testfile.dat
    	using 8KB sequential IOs
    	enabling multiple I/Os per thread with 8 outstanding
    using specified size: 2048 MB for file: d:\testfile.dat
    initialization done
    CUMULATIVE DATA:
    throughput metrics:
    IOs/sec: 54640.64
    MBs/sec:   426.88
    latency metrics:
    Min_Latency(ms): 0
    Avg_Latency(ms): 0
    Max_Latency(ms): 2562
    histogram:
    ms: 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24+
    %: 99  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
    
    C:\Program Files (x86)\SQLIO>sqlio -kW -s360 -fsequential -o8 -b64 -LS -Fparam.txt 
    sqlio v1.5.SG
    using system counter for latency timings, 2435322 counts per second
    parameter file used: param.txt
    	file d:\testfile.dat with 2 threads (0-1) using mask 0x0 (0)
    2 threads writing for 360 secs to file d:\testfile.dat
    	using 64KB sequential IOs
    	enabling multiple I/Os per thread with 8 outstanding
    using specified size: 2048 MB for file: d:\testfile.dat
    initialization done
    CUMULATIVE DATA:
    throughput metrics:
    IOs/sec:  6873.16
    MBs/sec:   429.57
    latency metrics:
    Min_Latency(ms): 0
    Avg_Latency(ms): 1
    Max_Latency(ms): 131
    histogram:
    ms: 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24+
    %: 30 40  8 17  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  2
    
    C:\Program Files (x86)\SQLIO>sqlio -kW -s360 -fsequential -o8 -b128 -LS -Fparam.txt 
    sqlio v1.5.SG
    using system counter for latency timings, 2435322 counts per second
    parameter file used: param.txt
    	file d:\testfile.dat with 2 threads (0-1) using mask 0x0 (0)
    2 threads writing for 360 secs to file d:\testfile.dat
    	using 128KB sequential IOs
    	enabling multiple I/Os per thread with 8 outstanding
    using specified size: 2048 MB for file: d:\testfile.dat
    initialization done
    CUMULATIVE DATA:
    throughput metrics:
    IOs/sec:  3455.32
    MBs/sec:   431.91
    latency metrics:
    Min_Latency(ms): 0
    Avg_Latency(ms): 4
    Max_Latency(ms): 118
    histogram:
    ms: 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24+
    %: 16  2  1 26 28 19  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  3
    
    C:\Program Files (x86)\SQLIO>sqlio -kW -s360 -fsequential -o8 -b256 -LS -Fparam.txt 
    sqlio v1.5.SG
    using system counter for latency timings, 2435322 counts per second
    parameter file used: param.txt
    	file d:\testfile.dat with 2 threads (0-1) using mask 0x0 (0)
    2 threads writing for 360 secs to file d:\testfile.dat
    	using 256KB sequential IOs
    	enabling multiple I/Os per thread with 8 outstanding
    using specified size: 2048 MB for file: d:\testfile.dat
    initialization done
    CUMULATIVE DATA:
    throughput metrics:
    IOs/sec:  1719.56
    MBs/sec:   429.89
    latency metrics:
    Min_Latency(ms): 0
    Avg_Latency(ms): 8
    Max_Latency(ms): 158
    histogram:
    ms: 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24+
    %:  6 11  1  1  1  1  1  3 41 12 11  1  0  0  0  0  1  0  0  0  0  0  0  0  7
    
    C:\Program Files (x86)\SQLIO>sqlio -kR -s360 -frandom -o8 -b8 -LS -Fparam.txt 
    sqlio v1.5.SG
    using system counter for latency timings, 2435322 counts per second
    parameter file used: param.txt
    	file d:\testfile.dat with 2 threads (0-1) using mask 0x0 (0)
    2 threads reading for 360 secs from file d:\testfile.dat
    	using 8KB random IOs
    	enabling multiple I/Os per thread with 8 outstanding
    using specified size: 2048 MB for file: d:\testfile.dat
    initialization done
    CUMULATIVE DATA:
    throughput metrics:
    IOs/sec:  2134.08
    MBs/sec:    16.67
    latency metrics:
    Min_Latency(ms): 0
    Avg_Latency(ms): 7
    Max_Latency(ms): 254
    histogram:
    ms: 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24+
    %: 46  4  4  4  3  3  3  3  3  3  2  1  1  1  1  1  1  1  1  1  1  1  1  1  8
    
    C:\Program Files (x86)\SQLIO>sqlio -kR -s360 -frandom -o8 -b64 -LS -Fparam.txt 
    sqlio v1.5.SG
    using system counter for latency timings, 2435322 counts per second
    parameter file used: param.txt
    	file d:\testfile.dat with 2 threads (0-1) using mask 0x0 (0)
    2 threads reading for 360 secs from file d:\testfile.dat
    	using 64KB random IOs
    	enabling multiple I/Os per thread with 8 outstanding
    using specified size: 2048 MB for file: d:\testfile.dat
    initialization done
    CUMULATIVE DATA:
    throughput metrics:
    IOs/sec:  1572.30
    MBs/sec:    98.26
    latency metrics:
    Min_Latency(ms): 0
    Avg_Latency(ms): 9
    Max_Latency(ms): 316
    histogram:
    ms: 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24+
    %: 42  3  3  3  3  3  3  3  3  3  2  1  1  1  1  1  2  2  1  1  1  1  1  1 13
    
    C:\Program Files (x86)\SQLIO>sqlio -kR -s360 -frandom -o8 -b128 -LS -Fparam.txt 
    sqlio v1.5.SG
    using system counter for latency timings, 2435322 counts per second
    parameter file used: param.txt
    	file d:\testfile.dat with 2 threads (0-1) using mask 0x0 (0)
    2 threads reading for 360 secs from file d:\testfile.dat
    	using 128KB random IOs
    	enabling multiple I/Os per thread with 8 outstanding
    using specified size: 2048 MB for file: d:\testfile.dat
    initialization done
    CUMULATIVE DATA:
    throughput metrics:
    IOs/sec:  1247.40
    MBs/sec:   155.92
    latency metrics:
    Min_Latency(ms): 0
    Avg_Latency(ms): 12
    Max_Latency(ms): 418
    histogram:
    ms: 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24+
    %: 39  3  2  2  3  3  3  3  3  3  3  2  1  1  2  2  2  2  2  1  1  1  1  1 18
    
    C:\Program Files (x86)\SQLIO>sqlio -kR -s360 -frandom -o8 -b256 -LS -Fparam.txt 
    sqlio v1.5.SG
    using system counter for latency timings, 2435322 counts per second
    parameter file used: param.txt
    	file d:\testfile.dat with 2 threads (0-1) using mask 0x0 (0)
    2 threads reading for 360 secs from file d:\testfile.dat
    	using 256KB random IOs
    	enabling multiple I/Os per thread with 8 outstanding
    using specified size: 2048 MB for file: d:\testfile.dat
    initialization done
    CUMULATIVE DATA:
    throughput metrics:
    IOs/sec:   892.42
    MBs/sec:   223.10
    latency metrics:
    Min_Latency(ms): 0
    Avg_Latency(ms): 17
    Max_Latency(ms): 367
    histogram:
    ms: 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24+
    %: 36  2  1  1  1  2  2  2  2  2  2  2  2  1  2  2  2  2  2  1  1  1  1  1 27
    
    C:\Program Files (x86)\SQLIO>sqlio -kR -s360 -fsequential -o8 -b8 -LS -Fparam.txt 
    sqlio v1.5.SG
    using system counter for latency timings, 2435322 counts per second
    parameter file used: param.txt
    	file d:\testfile.dat with 2 threads (0-1) using mask 0x0 (0)
    2 threads reading for 360 secs from file d:\testfile.dat
    	using 8KB sequential IOs
    	enabling multiple I/Os per thread with 8 outstanding
    using specified size: 2048 MB for file: d:\testfile.dat
    initialization done
    CUMULATIVE DATA:
    throughput metrics:
    IOs/sec: 68394.20
    MBs/sec:   534.32
    latency metrics:
    Min_Latency(ms): 0
    Avg_Latency(ms): 0
    Max_Latency(ms): 75
    histogram:
    ms: 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24+
    %: 99  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
    
    C:\Program Files (x86)\SQLIO>sqlio -kR -s360 -fsequential -o8 -b64 -LS -Fparam.txt 
    sqlio v1.5.SG
    using system counter for latency timings, 2435322 counts per second
    parameter file used: param.txt
    	file d:\testfile.dat with 2 threads (0-1) using mask 0x0 (0)
    2 threads reading for 360 secs from file d:\testfile.dat
    	using 64KB sequential IOs
    	enabling multiple I/Os per thread with 8 outstanding
    using specified size: 2048 MB for file: d:\testfile.dat
    initialization done
    CUMULATIVE DATA:
    throughput metrics:
    IOs/sec: 11257.98
    MBs/sec:   703.62
    latency metrics:
    Min_Latency(ms): 0
    Avg_Latency(ms): 1
    Max_Latency(ms): 135
    histogram:
    ms: 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24+
    %: 55 17  8 19  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
    
    C:\Program Files (x86)\SQLIO>sqlio -kR -s360 -fsequential -o8 -b128 -LS -Fparam.txt 
    sqlio v1.5.SG
    using system counter for latency timings, 2435322 counts per second
    parameter file used: param.txt
    	file d:\testfile.dat with 2 threads (0-1) using mask 0x0 (0)
    2 threads reading for 360 secs from file d:\testfile.dat
    	using 128KB sequential IOs
    	enabling multiple I/Os per thread with 8 outstanding
    using specified size: 2048 MB for file: d:\testfile.dat
    initialization done
    CUMULATIVE DATA:
    throughput metrics:
    IOs/sec:  5743.90
    MBs/sec:   717.98
    latency metrics:
    Min_Latency(ms): 0
    Avg_Latency(ms): 2
    Max_Latency(ms): 242
    histogram:
    ms: 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24+
    %: 46  5  4  8 15 12  9  1  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
    
    C:\Program Files (x86)\SQLIO>sqlio -kR -s360 -fsequential -o8 -b256 -LS -Fparam.txt 
    sqlio v1.5.SG
    using system counter for latency timings, 2435322 counts per second
    parameter file used: param.txt
    	file d:\testfile.dat with 2 threads (0-1) using mask 0x0 (0)
    2 threads reading for 360 secs from file d:\testfile.dat
    	using 256KB sequential IOs
    	enabling multiple I/Os per thread with 8 outstanding
    using specified size: 2048 MB for file: d:\testfile.dat
    initialization done
    CUMULATIVE DATA:
    throughput metrics:
    IOs/sec:  2384.04
    MBs/sec:   596.01
    latency metrics:
    Min_Latency(ms): 0
    Avg_Latency(ms): 6
    Max_Latency(ms): 238
    histogram:
    ms: 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24+
    %: 31  1  1  2  3  4 10  8 16  9  5  2  1  1  1  1  1  1  0  0  0  0  0  0  2


    16 февраля 2015 г. 11:13

Ответы

  • Дополнительно следует разделить файл данных и логов и вынести tempdb на отдельные диски, также не с RAID5

    Innovation distinguishes between a leader and a follower - Steve Jobs

    • Помечено в качестве ответа Lizard_tula 17 февраля 2015 г. 11:02
    16 февраля 2015 г. 14:17
  • 1. Конечно, RAID5 под базу сиквела - это, как правило, плохой сценарий.
    2. Но надо бы сперва понять, действительно ли диск является узким местом при обновлении. Тем более что, обновление конфигурации, как правило, не та задача, которая является первой в очереди на ускорение.

    • Помечено в качестве ответа Lizard_tula 17 февраля 2015 г. 11:02
    16 февраля 2015 г. 13:53

Все ответы

  • 1. Конечно, RAID5 под базу сиквела - это, как правило, плохой сценарий.
    2. Но надо бы сперва понять, действительно ли диск является узким местом при обновлении. Тем более что, обновление конфигурации, как правило, не та задача, которая является первой в очереди на ускорение.

    • Помечено в качестве ответа Lizard_tula 17 февраля 2015 г. 11:02
    16 февраля 2015 г. 13:53
  • Дополнительно следует разделить файл данных и логов и вынести tempdb на отдельные диски, также не с RAID5

    Innovation distinguishes between a leader and a follower - Steve Jobs

    • Помечено в качестве ответа Lizard_tula 17 февраля 2015 г. 11:02
    16 февраля 2015 г. 14:17
  • 1. Конечно, RAID5 под базу сиквела - это, как правило, плохой сценарий.
    2. Но надо бы сперва понять, действительно ли диск является узким местом при обновлении. Тем более что, обновление конфигурации, как правило, не та задача, которая является первой в очереди на ускорение.

    Спасибо за ответ! Мне этот сервер достался предварительно настроенным предыдущим администратором. Поэтому там разделы сделаны так, как сделаны.

    Судя по всему, оптимальным в таком случае мне будет посмотреть, как сервер среагирует на постепенное возрастание нагрузки (а пользователи будут подключаться плавно, не все сразу - база вводится в работу частями).

    17 февраля 2015 г. 11:01
  • Дополнительно следует разделить файл данных и логов и вынести tempdb на отдельные диски, также не с RAID5

    Ясно, спасибо! Как только в эксплуатации появится провал в производительности, так и сделаем
    17 февраля 2015 г. 11:02
  • Зачем ждать? Помимо прочего, отказ от RAID5 обязывает вас подумать о стратегии обеспечения бесперебойной работы. Понятно, что и RAID5 ничего не гарантирует, но в его отсутствие точно нельзя будет продолжать делать вид, что всё в порядке, что очень любят сисадмины классического типа.
    В момент вылета диска в RAID5 начнётся ребилд массива. Производительность дисковой подсистемы на время ребилда может снизиться на 1-2 порядка. Фактически, это часто означает потерянный рабочий день.
    17 февраля 2015 г. 11:33