Назад | Перейти на главную страницу

Два одинаковых сервера. Один с очень низкой производительностью

У меня есть эти два сервера со следующими характеристиками:

ОС: RHEL 6.3 Аппаратное обеспечение: Dell PowerEdge R610, 12 ядер, 64 ГБ RAM Диски: 6 x Samsung 840 Pro SSD RAID-контроллер: Intel RS25AB080, 1 ГБ кэш-памяти Уровень RAID: 5

Когда мы тестируем производительность диска с помощью команды dd на сервере «A», мы получаем в среднем 333 МБ / с.

Когда мы тестируем производительность диска с помощью команды dd на сервере «B», мы получаем в среднем 40 МБ / с.

Я использую следующую команду

dd if=/dev/zero of=testfile bs=3G count=1 oflag=dsync

Я не могу понять, почему у нас такая ужасная производительность на сервере B.

Сервер является резервным узлом кластера для кластера базы данных MySQL. Активные службы MySQL в настоящее время работают на другом сервере, поэтому этот узел практически бездействует. Единственные важные процессы, запущенные на нем, - это corosync, pacemaker и drbd.

Первое, что нужно проверить - это версия прошивки SSD. Компания Samsung выпустила обновления прошивки для повышения производительности и надежности. Также проверьте прошивку рейд-контроллера.

Во-вторых, проверьте конфигурацию машины, используйте sysctl -a чтобы подтвердить, что оба используют одинаковые настройки ядра

Из того, что вы описываете, я подозреваю, что один твердотельный накопитель «заполнен», а на другом все еще есть свободное место. Хотя почти полная файловая система также помогает в решении этой проблемы, под полной я подразумеваю, что прошивка SSD не имеет "пустых" блоков для использования (даже если файловая система сообщает о большом количестве свободного места, все блоки могут быть уже записаны), поэтому любые попытки записи сборка мусора, чтобы получить больше свободного блока для нормального использования. На другом SSD все еще есть свободные блоки, поэтому он быстро находит и записывает туда все, что ему нужно.

Обычно вы «освобождаете» блоки SSD с помощью опции Discard Mount или (обычно более рекомендуется) инструмента fstrim. Проверь это ссылка на сайт для получения дополнительной информации.

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

Наконец, если вы не можете запустить с дискартом или запустить fstrim (поскольку тогда это позволяют не все RAID-контроллеры), я бы порекомендовал вам очистить ячейку памяти SSD, а затем разделить свой SSD так, чтобы по крайней мере от 10% до 20% SSD не выделяется ни на один раздел (свободное пространство раздела), поэтому микропрограмма может видеть его свободным и иметь возможность лучше выполнять сборку мусора и освобождать достаточное количество блоков, чтобы избежать повторной сборки мусора.