У меня кластер k8s на 4 ВМ. 1 мастер и 3 рабочих. На каждом из рабочих я использую ладью для развертывания OSD ceph. OSD используют тот же диск, что и операционная система виртуальной машины.
Диски виртуальных машин являются удаленными (базовая инфраструктура снова представляет собой кластер Ceph).
Это производительность диска ВМ (одинаковая для всех трех):
$ dd if=/dev/zero of=testfile bs=1G count=1 oflag=direct
1+0 records in
1+0 records out
1073741824 bytes (1.1 GB) copied, 4.82804 s, 222 MB/s
А задержка (ожидание) в режиме ожидания составляет около 8 мс.
Если я смонтирую том RBD внутри K8S POD, производительность будет очень низкой:
$ dd if=/dev/zero of=testfile bs=1G count=1 oflag=direct
1+0 records in
1+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 128.619 s, 8.3 MB/s
Во время высокой нагрузки (100% использование тома rbd) задержка тома RBD превышает 30 секунд.
Я знаю, что моя установка - это не то, что рекомендует ceph, и что dd не лучший инструмент для профилирования производительности диска, но штраф от использования ceph поверх виртуальных дисков по-прежнему огромен.
Операционная система ВМ
CentOS 7.7.1908.
Kernel 3.10.0-1062.12.1.el7.x86_64
Пропускная способность сети между рабочими узлами:
[ ID] Interval Transfer Bandwidth
[ 5] 0.00-10.00 sec 2.35 GBytes 2.02 Gbits/sec
Задержка в сети менее 1 мс.
Я ищу подсказки по дальнейшему устранению проблемы и повышению производительности.
Недостаточно информации о вашем кластере CEPH. Но кое-что улучшит производительность: