Я запускаю тест OLTP sysbench с TiDB на локальном SSD-диске GKE.Но у меня плохая производительность по сравнению с постоянным SSD-диском GKE.Как я могу получить ожидаемую производительность IOPS на локальном SSD-диске GKE по умолчанию?
Я запустил тестирование TiDB OLTP и fio с двигателем psync
, но результаты показывают, что IOPS на локальном SSD-диске хуже, чемна постоянном диске SSD.И я также провел тщательный анализ blktrace.Я запустил команду fio:
fio -ioengine=psync -bs=32k -fdatasync=1 -thread -rw=write -size=10G -filename=test -name="max throughput" -iodepth=1 -runtime=60 -numjobs=4 -group_reporting
Результат теста fio для локального SSD-диска и постоянного диска:
| disk type | iops | bandwidth |
|---------------------+------+-----------|
| local SSD disk | 302 | 9912kB/s |
| persistent SSD disk | 1149 | 37.7MB/s |
А результат blktrace btt:
==================== All Devices ====================
ALL MIN AVG MAX N
--------------- ------------- ------------- ------------- -----------
Q2Q 0.000000002 0.003716416 14.074086987 34636
Q2G 0.000000236 0.000005730 0.005347758 25224
G2I 0.000000727 0.000005446 0.002450425 20575
Q2M 0.000000175 0.000000716 0.000027069 9447
I2D 0.000000778 0.000003197 0.000111657 20538
M2D 0.000001941 0.000011350 0.000431655 9447
D2C 0.000065510 0.000182827 0.001366980 34634
Q2C 0.000072793 0.001181298 0.023394568 34634
==================== Device Overhead ====================
DEV | Q2G G2I Q2M I2D D2C
---------- | --------- --------- --------- --------- ---------
( 8, 48) | 0.3532% 0.2739% 0.0165% 0.1605% 15.4768%
---------- | --------- --------- --------- --------- ---------
Overall | 0.3532% 0.2739% 0.0165% 0.1605% 15.4768%
Согласно руководству по оптимизации , я вручную перемонтировал диск с опцией nobarrier
, и результат blktrace btt выглядит как обычно.
==================== All Devices ====================
ALL MIN AVG MAX N
--------------- ------------- ------------- ------------- -----------
Q2Q 0.000000006 0.000785969 12.031454829 123537
Q2G 0.000003929 0.000006162 0.005294881 94553
G2I 0.000004677 0.000029263 0.004555917 94553
Q2M 0.000004069 0.000005337 0.000328930 29019
I2D 0.000005166 0.000020476 0.001078527 94516
M2D 0.000012816 0.000056839 0.001113739 29019
D2C 0.000081435 0.000358712 0.006724447 123535
Q2C 0.000113965 0.000415489 0.006763290 123535
==================== Device Overhead ====================
DEV | Q2G G2I Q2M I2D D2C
---------- | --------- --------- --------- --------- ---------
( 8, 48) | 1.1351% 5.3907% 0.3017% 3.7705% 86.3348%
---------- | --------- --------- --------- --------- ---------
Overall | 1.1351% 5.3907% 0.3017% 3.7705% 86.3348%
Однако, согласнок документу RedHat , параметр монтирования nobarrier
должен иметь очень небольшое отрицательное влияние на производительность (около 3%), и его не рекомендуется использовать в хранилище, настроенном на виртуальных машинах.
В Red Hat Enterprise Linux 6 больше не рекомендуется использовать nobarrier, поскольку отрицательное влияние барьеров записи на производительность незначительно (примерно 3%).Преимущества барьеров записи обычно перевешивают преимущества производительности при их отключении.Кроме того, параметр nobarrier никогда не следует использовать в хранилище, настроенном на виртуальных машинах.
В дополнение к параметру nobarrier
в руководстве по оптимизации локального SSD-диска также предлагается установить гостевую среду Linux . но утверждает, что он уже установлен на более новом образе виртуальной машины.Однако я обнаружил, что он не установлен на узле GKE.
Поэтому я вручную установил гостевую среду Linux и снова протестировал, на этот раз результат btt выглядит так, как ожидалось:
==================== All Devices ====================
ALL MIN AVG MAX N
--------------- ------------- ------------- ------------- -----------
Q2Q 0.000000001 0.000472816 21.759721028 301371
Q2G 0.000000215 0.000000925 0.000110353 246390
G2I 0.000000279 0.000003579 0.003997348 246390
Q2M 0.000000175 0.000000571 0.000106259 54982
I2D 0.000000609 0.000002635 0.004064992 246390
M2D 0.000001400 0.000005728 0.000509868 54982
D2C 0.000051100 0.000451895 0.009107264 301372
Q2C 0.000054091 0.000458881 0.009111984 301372
==================== Device Overhead ====================
DEV | Q2G G2I Q2M I2D D2C
---------- | --------- --------- --------- --------- ---------
( 8, 80) | 0.1647% 0.6376% 0.0227% 0.4695% 98.4778%
---------- | --------- --------- --------- --------- ---------
Overall | 0.1647% 0.6376% 0.0227% 0.4695% 98.4778%
ИтакКак я могу получить ожидаемую производительность IOPS на локальном SSD-диске GKE по умолчанию без дополнительной настройки?