Высокая нагрузка на сервер [закрыто]

У меня есть выделенный сервер cpanel LAMP и У меня были проблемы с загрузкой последние 2 дня.

Вот как выглядит мой топ (отсортировано по M):

top - 14:26:04 up 1 day,  1:08,  2 users,  load average: 33.10, 36.63, 38.92
Tasks: 359 total,   1 running, 355 sleeping,   1 stopped,   2 zombie
Cpu(s):  4.2%us,  0.8%sy,  0.0%ni, 13.6%id, 81.0%wa,  0.0%hi,  0.3%si,  0.0%st
Mem:   1034896k total,   998084k used,    36812k free,     8716k buffers
Swap:  2040212k total,  1606552k used,   433660k free,    87388k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 5088 mysql     15   0  336m 106m 3868 S  1.3 10.6 310:15.37 mysqld
15797 nobody    18   0  331m  65m 1988 S  3.0  6.4   0:04.64 httpd
15635 nobody    19   0  371m  63m 1840 S  0.0  6.3   0:00.88 httpd
15664 nobody    18   0  374m  63m 1832 S  1.3  6.2   0:00.43 httpd
15769 nobody    19   0  336m  59m 1700 S  0.0  5.9   0:00.29 httpd
15721 nobody    18   0  324m  59m 1732 S  1.0  5.9   0:00.29 httpd
15697 nobody    18   0  304m  59m 1692 S  0.0  5.8   0:00.46 httpd

iostat:

Linux 2.6.18-164.15.1.el5 (hostname)   05/20/2011

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          21.93    0.33    4.91   12.03    0.00   60.79

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda              65.16      1069.51      1285.65   96981151  116580545
sda1              0.00         0.03         0.00       3023         31
sda2             18.59       444.95       159.37   40347535   14451402
sda3              7.15       129.47       113.45   11740498   10287608
sda4              0.00         0.00         0.00          6          0
sda5              1.25        12.88        44.49    1167658    4034632
sda6              3.92        11.25       525.79    1020250   47677744
sda7              5.56       108.71        96.29    9857739    8731832
sda8             28.70       362.20       346.25   32843994   31397296

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

Не могли бы вы предложить способ отладки / решения этой ситуации?

1
задан 20 May 2011 в 16:22
5 ответов

Я предположил бы Вашу основу проблем загрузки от Вашего чрезмерного использования области подкачки из-за исчерпывания памяти. Как только Ваши приложения израсходовали всю доступную RAM (1 ГБ), они собираются начать использовать область подкачки (1.6 из используемой 2GB), который увеличит Вашу загрузку IO (81.0%wa).

Вы почти никогда не хотите, чтобы Ваш сервер ЛАМПЫ должен был использовать область подкачки как, как Вы заметили, это полностью наносит вред производительности сервера. Для не использования подкачки, необходимо ограничить использование памяти приложения:

  • Сократите максимальное количество клиентов Apache, обычно с MaxClients. Только с 1 ГБ RAM Вы, вероятно, хотите ограничить Apache использованием 500 МБ или меньше что означает a MaxClients только из 8 может быть необходим (500MB/60MB для каждого процесса = 8). Можно играть с этим числом и если сервер начинает подкачивать, уменьшают его и перезапускают Apache.
  • Возможно уменьшите использование памяти MySQL. Так как у Вас только есть 1 ГБ RAM, можно хотеть ограничить использование MySQL. От Вашего вывода вершины кажется прекрасным в данный момент, но если это увеличивается слишком высоко, Вам, вероятно, придется играть с конфигурацией. "Правильная сумма" RAM для предоставления MySQL зависит от базы данных и приложения. Я мог бы дать тяжелое приложение 500MB дб, но очень легкий только 50 МБ.
  • Контролируйте использование памяти, что когда-либо другие приложения у Вас есть выполнение. Наличие только 1 ГБ на сервере ЛАМПЫ ограничивает, сколько памяти можно дать всему, что, в конечном счете, ограничит способность обслуживания.
3
ответ дан 3 December 2019 в 17:20
Cpu(s):  4.2%us,  0.8%sy,  0.0%ni, 13.6%id, 81.0%wa,  0.0%hi,  0.3%si,  0.0%st

Посмотрите очень высокое значение для wa? Это - Ваша проблема. Вы испытываете очень высокую конкуренцию IO, и у Вас есть много процессов, сидящих без дела в очереди планировщика, ожидающей диска IO для случая.

Я рекомендовал бы провести некоторое время, исследовав Вашу дисковую ситуацию. Вероятно, что необходимо добавить дополнительные шпиндели или более быстрые диски.

1
ответ дан 3 December 2019 в 17:20

Ожидание IO супер высоко. Не возможно определить от вершины и iostat выводов, что уничтожает диск. Я выполнил бы iotop, чтобы видеть, можно ли найти преступника IO.

Также проверьте "шоу полный processlist" в MySQL для понимания то, что выполняют запросы. Это могли быть один или несколько запросов, срывающих вещи.

Наконец, включенное состояние сервера в Apache и доступе проверки регистрируется для получения представления в то, что Apache пытается сделать. Возможно, кто-то очищает много раз?

Следующее может указать, становитесь ли Вы хлопнувшими одним хостом. Это должно отобразить все текущие соединения с портом 80 заказанных количеством

netstat -anp |awk '/:80/ {print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
1
ответ дан 3 December 2019 в 17:20

"Слишком много соединений" - означают, что Вы должны увеличить значение max_connections в конфигурации mysql. Это может быть результат многих апачских процессов, пытающихся соединяться с mysql сервером и застрявшим ожиданием, когда достигают mysql max_connections предел. Может быть то, что сторона приложения не закрывает соединение правильно или Вас, если это - нормальная нагрузка, Вы должны увеличить пределы. Я думаю, что необходимо контролировать где подключения mysql, прибывающие из, и как подключения mysql дескриптора/завершения приложения.

0
ответ дан 3 December 2019 в 17:20

Спасибо всем за ответы. Они были все допустимы и полезны.

Фактический преступник был на самом деле cpanellogd - процесс, который cpanel выполняет, чтобы повернуть и создать статистику из журналов доступа.

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

0
ответ дан 3 December 2019 в 17:20

Теги

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