Вчера вечером я получил много сообщений от DirectAdmin, в которых говорилось: средняя загрузка вашей системы 46,86 или какое-то подобное число. Он идет с «верхней» распечаткой, но все, что я могу сказать по этой распечатке, это то, что процессор простаивает на 99,7%, а объем используемой памяти кажется большим. Но после небольшого прочтения я понимаю, что это нормально, и пока мало памяти подкачки (80 МБ из 2 ГБ, верно?), Проблем нет.
Итак, мой вопрос: откуда берется высокая нагрузка? И я должен волноваться и / или предпринимать какие-либо действия?
Это на CentOS VPS с 512 МБ ОЗУ и 1 ядром. В настоящее время он обслуживает только 2 веб-сайта с очень низким трафиком.
Бесплатная команда с утра (полдня спустя):
free
total used free shared buffers cached
Mem: 503396 444488 58908 0 53688 165556
-/+ buffers/cache: 225244 278152
Swap: 2097144 81840 2015304
первое сообщение от directAdmin, включая верхнюю распечатку:
This is an automated message notifying you that the 5 minute load average on your system is 46.86.
This has exceeded the 10 threshold.
One Minute - 51.18
Five Minutes - 46.86
Fifteen Minutes - 30.63
top - 00:16:43 up 92 days, 12:58, 1 user, load average: 51.18, 46.86, 30.63
Tasks: 196 total, 3 running, 193 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.1%us, 0.1%sy, 0.0%ni, 99.7%id, 0.2%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 503396k total, 458164k used, 45232k free, 36656k buffers
Swap: 2097144k total, 82432k used, 2014712k free, 141668k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
12008 root 20 0 15068 1156 760 R 2.2 0.2 0:00.04 /usr/bin/top -c -b -n 1
12012 root 20 0 15068 1144 760 R 2.2 0.2 0:00.03 /usr/bin/top -c -b -n 1
12014 root 20 0 15076 1252 844 R 2.2 0.2 0:00.03 /usr/bin/top -c -b -n 1
11828 diradmin 20 0 53952 2644 2060 S 1.1 0.5 0:00.08 /usr/local/directadmin/dataskq
11881 diradmin 20 0 53952 2644 2060 S 1.1 0.5 0:00.04 /usr/local/directadmin/dataskq
1 root 20 0 19244 1136 916 S 0.0 0.2 0:00.91 /sbin/init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [kthreadd]
3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 [migration/0]
4 root 20 0 0 0 0 S 0.0 0.0 0:00.58 [ksoftirqd/0]
5 root RT 0 0 0 0 S 0.0 0.0 0:00.00 [watchdog/0]
6 root 20 0 0 0 0 S 0.0 0.0 0:01.91 [events/0]
7 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [cpuset]
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [khelper]
9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [netns]
10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [async/mgr]
11 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [pm]
12 root 20 0 0 0 0 S 0.0 0.0 0:00.01 [sync_supers]
13 root 20 0 0 0 0 S 0.0 0.0 0:00.01 [bdi-default]
14 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [kintegrityd/0]
15 root 20 0 0 0 0 S 0.0 0.0 0:01.03 [kblockd/0]
16 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [kacpid]
17 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [kacpi_notify]
18 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [kacpi_hotplug]
Я всегда считал, что DirectAdmin (и ему подобные) - плохая штука.
Первое попадание по запросу "dataskq" в Google - этот
Итак, похоже, что DirectAdmin вызывает у вас большую нагрузку.
Я бы удалил его на твоем месте и стал бы настоящий сисадмин.
Использование ЦП - не единственный вклад в загрузку системы, еще один - процессы, находящиеся в непрерывном режиме сна («D»). Попробуйте что-нибудь вроде ps -axu |grep D
(это может привести к ложным срабатываниям, поскольку буква D может встречаться где угодно, а не только в столбце STAT). Это должно, по крайней мере, дать вам подсказку, если есть какие-либо процессы «D». Как правило, они ожидают некоторого ресурса (например, файла на диске), который не отвечает немедленно. Иногда эти процессы могут зависать на долгое время (например, при ожидании монтирования NFS, для которого сервер стал недоступен).
Редактировать: Вы также можете попробовать что-то вроде ps axu | grep -E " D[<NLsl+]* "
чтобы избежать некоторых ложных срабатываний ps -axu |grep D
.