Вопрос или проблема
Я испытываю 99% загрузку ввода-вывода, вызванную процессом [md0_raid1]
каждые 20-30 секунд. Эта 99% загрузка ввода-вывода очень кратковременна, около 1-2 секунд, но она вызывает задержки для других процессов из-за ожидания ввода-вывода (это очень вредно для игрового сервера). Это нормальное поведение? Как я могу избежать этих высоких задержек ввода-вывода? Я был бы признателен за любые советы.
У меня программный RAID 1 (Ext4) на новом сервере Linux Debian 9.3, я запускаю веб-сервер Apache/MySQL и несколько серверов Minecraft.
iotop:
Total DISK READ : 0.00 B/s | Total DISK WRITE : 15.30 K/s
Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 0.0 B/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
199 be/4 root 0.00 B/s 0.00 B/s 0.00 % 99.99 % [md0_raid1]
45302 be/4 root 0.00 B/s 3.82 K/s 0.00 % 0.00 % java -Xms~spigot.jar
51303 be/4 root 0.00 B/s 3.82 K/s 0.00 % 0.00 % java -Xms~spigot.jar
51306 be/4 root 0.00 B/s 3.82 K/s 0.00 % 0.00 % java -Xms~spigot.jar
51200 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % java -Xmx~ee-private
1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % init
2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd]
3 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/0]
5 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/0:0H]
mdstat:
md1 : active raid1 sda5[0] sdb5[1]
33501184 blocks super 1.2 [2/2] [UU]
md0 : active raid1 sda1[0] sdb1[1]
943111168 blocks super 1.2 [2/2] [UU]
bitmap: 5/8 pages [20KB], 65536KB chunk
Аппаратные характеристики:
Intel Xeon 1231v3 (3.4 ГГц) 4C/8T 8MB
32 ГБ DDR3 ECC 1600 MHz
2x SATA 6G 1TB 7.2k (программный RAID 1)
Характеристики lspci:
https://gist.github.com/FreeWall/98f4bc8029387dbe4d47feacdd37aa85
Я бы рекомендовал проверить системные сообщения, используя команду:
dmesg
Если ничего не отображается, добавьте более подробную информацию о железе с помощью команды:
lspci
Имейте в виду, что это также может быть признаком аппаратной проблемы. Если это не сервер в стойке, а обычный ПК, то я бы также рекомендовал заменить SATA-кабели для дисков, имеющих эту проблему.
Ответ или решение
Прошу прощения за неудобства, с которыми вы сталкиваетесь. Высокая загрузка I/O, вызванная процессом [md0_raid1]
, может быть обусловлена различными факторами, включая конфигурацию программного обеспечения, разрешения для файловой системы, а также возможные аппаратные проблемы. Давайте рассмотрим возможные причины и решения.
Возможные причины высокой загрузки I/O
-
Работа с битмапом RAID: Ваша конфигурация RAID 1 использует битмап для отслеживания изменений. Если битмап не управляется должным образом, он может вызывать частые операции записи, что в свою очередь приводит к увеличению загрузки I/O.
-
Программное обеспечение: Некоторые приложения, такие как MySQL и Minecraft-серверы, могут вызывать кратковременные пики нагрузки, особенно если используется интенсивный доступ к диску.
-
Аппаратные проблемы: Если один из дисков в массиве RAID имеет проблемы или сбои, это может приводить к высокой загрузке I/O, так как система будет пытаться считывать и записывать данные на проблемный диск.
Рекомендации по устранению высокой нагрузки I/O
-
Проверка системных сообщений:
Выполните командуdmesg
для просмотра возможных системных ошибок или предупреждений, которые могут указывать на проблемы с аппаратным обеспечением. -
Мониторинг использования диска:
Используйтеiostat
илиiotop
для мониторинга текущего использования дисков в реальном времени. Это поможет понять, какие процессы создают пики загрузки. -
Оптимизация конфигурации RAID:
Проверьте настройки битмапа RAID и, если необходимо, измените его параметры или полностью отключите его временно, чтобы определить, вызывает ли он проблему. -
Проверка состояния дисков:
Используйте командуsmartctl
для проверки состояния жестких дисков и убедитесь, что нет ошибок:smartctl -a /dev/sda smartctl -a /dev/sdb
-
Снижение нагрузки приложений:
Если возможно, оптимизируйте вашу конфигурацию MySQL и Minecraft-серверов. Например, уменьшите частоту обновлений данных или примените кэширование для минимизации прямых операций записи. -
Профилирование приложений:
Запустите профилирование для ваших Java-приложений (Minecraft-серверов) с использованием инструментов, таких как VisualVM, чтобы понять, вызывают ли они частые операции чтения/записи. -
Обновление ядра и пакетов:
Убедитесь, что ваша система обновлена. Иногда обновление ядра и программного обеспечения может устранить известные проблемы. -
Замена кабелей SATA:
Если это обычный ПК, а не сервер в стойке, возможно, стоит заменить SATA-кабели. Плохое соединение может быть причиной проблем с дисками.
Заключение
Если после выполнения всех вышеперечисленных шагов проблема не устраняется, возможно, стоит подумать о замене оборудования или изменении конфигурации RAID. Важно помнить, что длительные высокие нагрузки на систему могут указывать на проблемы, требующие немедленного решения для предотвращения потери данных и сбоев в работе сервисов.