Доброго времени суток, aLL.Сервер HP DL380 Gen10 (dual Xeon Silver 4110 2.10GHz, 128Gb RAM, FC-карта QLogic SN110Q 16Gb) на debian 9.8 (4.9.0-8-amd64)в роли сервера БД (percona server-5.6.43-84.3).
Mysql data монтируется по FC с HPE MSA-2050 (raid 10 14 SAS HDD 900Gb 15K, одна дисковая группа, один пул, one раздел размером 2.5 Tb ext4) на скорости 16Gbps. Без muptipath, один линк.
Происходит следующее: замер Sysbench'ем скорости random read/write показывает значения в 10/8 M/s, что ... ну совсем не айс. соответственно и I/O мускула на таком же уровне.
Но если делать тест последовательного чтения/записи, то скорость вырастает до 800/600 M/s. Такие же показатели, если "тестить" с помощью dd, при копировании данных и вообще - при любых последовательных операциях чтения-записи
Перебрал различные доступные опции в HPE MSA - бестолку
SAN volume смонтирован вот так: /dev/sde1 on /mysql-data type ext4 (rw,noatime,stripe=256,data=ordered)
Тест случайного чтения:
sysbench --test=fileio --file-total-size=150G prepare
sysbench --test=fileio --file-total-size=150G --file-test-mode=rndrd --max-time=100 --max-requests=0 run
Результат:
===
Running the test with following options:
Number of threads: 1
Initializing random number generator from current time
Extra file open flags: (none)
128 files, 1.1719GiB each
150GiB total file size
Block size 16KiB
Number of IO requests: 0
Read/Write ratio for combined random IO test: 1.50
Periodic FSYNC enabled, calling fsync() each 100 requests.
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing random read test
Initializing worker threads...
Threads started!
File operations:
reads/s: 561.86
writes/s: 0.00
fsyncs/s: 0.00
Throughput:
read, MiB/s: 8.78
written, MiB/s: 0.00
General statistics:
total time: 100.0053s
total number of events: 56191
Latency (ms):
min: 0.01
avg: 1.78
max: 111.23
95th percentile: 11.65
sum: 99924.80
Threads fairness:
events (avg/stddev): 56191.0000/0.00
execution time (avg/stddev): 99.9248/0.00
===
Тест последовательного чтения:
startng with `sysbench --test=fileio --file-total-size=150G --file-test-mode=seqrd --max-time=100 --max-requests=0 run` result is:
Результат:
===
Running the test with following options:
Number of threads: 1
Initializing random number generator from current time
Extra file open flags: (none)
128 files, 1.1719GiB each
150GiB total file size
Block size 16KiB
Periodic FSYNC enabled, calling fsync() each 100 requests.
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing sequential read test
Initializing worker threads...
Threads started!
File operations:
reads/s: 31642.04
writes/s: 0.00
fsyncs/s: 0.00
Throughput:
read, MiB/s: 494.41
written, MiB/s: 0.00
General statistics:
total time: 100.0008s
total number of events: 3164351
Latency (ms):
min: 0.00
avg: 0.03
max: 32.77
95th percentile: 0.06
sum: 98523.42
Threads fairness:
events (avg/stddev): 3164351.0000/0.00
execution time (avg/stddev): 98.5234/0.00
===
Подобные значения при рандомной и последовательной записи
Что не так?