Необъяснимая загрузка GlusterFS и низкая производительность

Мы запускаем сервер репликации GlusterFS на 2 узлах и у нас 2 клиента. Демон самовосстановления включен. Каждый клиент подключается к другому серверу с помощью клиента Gluster. У нас есть много очень маленьких файлов на томе Gluster.

Мы используем GlusterFS 3.9.1 из официальных репозиториев APT GlusterFS в системе Debian Jessie.

Проблема, с которой мы сталкиваемся, заключается в том, что один из серверов является при средней нагрузке 0,1-0,5, а другой - при 200. Этот поток данных продолжается, даже когда клиенты не читают данные для записи.

Следующие значения измеряются nload и iftop :

сервер: исходящий 35- 40 МБ / с

Два клиента: входящие 17-20 МБ / с

Наша производительность на клиенте Gluster очень низкая. ls может занять до 10 секунд, а наше приложение работает очень медленно.

Серверы и клиенты подключаются через внутреннюю сеть центра обработки данных и могут обрабатывать гораздо большую пропускную способность, так что это не ограничивающий фактор.

Мои два основных вопроса:

1: Являются ли эти различия в нормальном поведении нагрузки сервера для GlusterFS и чем это вызвано?

2: Почему существует такая высокая константа поток данных к клиентам формирует один из серверов.

Кажется, я не могу найти никакой информации по этому поводу в документации Gluster или в Интернете.

1
задан 28 February 2017 в 14:42
1 ответ

> 1: Являются ли эти различия в загрузке сервера нормальным поведением для GlusterFS и чем это вызвано?

Посмотрите глубже на источник загрузки. Где находится узкое место? CPU/Disk-IO/... (инструменты, например, top, iotop)

Может быть, высокая нагрузка основана на io-wait.

Проверьте, достаточно ли свободной памяти, чтобы gluster мог использовать кэш.

> 2: Почему такой высокий постоянный поток данных к клиентам формирует один из серверов.

Проверьте, какая программа посылает какие данные на какой хост. nload и iftop дают вам представление о трафике для всего сетевого интерфейса. Поэтому попробуйте nethogs, которые дают вам трафик (dev, sent, received) по PID.

Запись от клиентов должна быть написана на текущем gluster-сервере. Текущий gluster-сервер должен послать файл другому gluster-серверу. Когда оба сервера записали файл, клиент получает подтверждение.

Может быть, эта процедура "удваивает" сетевой трафик на gluster-сервере?!? (см. утилиты сетевого мониторинга... какой процесс и куда идет трафик)

общая производительность касается:

Проверьте сетевую задержку и посмотрите запись в блоге Джо Джулиана. (поиск "Across highlatency connections")

ls в течение 10 секунд может быть "нормальным", если в каталоге очень много файлов. Это происходит потому, что каждый метаданный для каждого файла должен быть запрошен с gluster-сервера. Смотрите эту заметку, объясняющую производительность nfs против gluster-клиента, чтобы получить немного больше объяснений.

Может быть http:// blog.gluster.org/2016/10/gluster-уровень и малая производительность/интересна для вас. Для меня это немного помогает при работе с мелкими файлами.

1
ответ дан 3 December 2019 в 23:33

Теги

Похожие вопросы