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

Почему один процесс требует так много ресурсов

Мой веб-сайт работает очень медленно или не отвечает. Беглый взгляд на top команда показывает мне что-то вроде этого:

PID  USER      PR  NI  VIRT  RES  SHR  S %CPU  %MEM    TIME+  COMMAND
1709 mysql     20   0  828m  432m 5584 S 382.6  5.4   7414:24 mysqld

Остальные процессы намного ниже этих значений. Очевидно, у MySQL есть некоторые проблемы. Как я могу проверить, что на самом деле происходит и почему для этого требуется так много ресурсов?

Спасибо.

Бегать show processlist в консоли mysql, чтобы получить список текущих запросов. Поищите те, которые были запущены некоторое время, и посмотрите, что они делают. Скорее всего, есть несколько запросов, выполняющих чудовищный объем работы (обычно из-за плохих индексов).

Помимо ответ Womble (которые указывают на оптимизацию ваших запросов); для тех, кого озадачивает 382,6% использования ЦП, обратите внимание, что MySQL - это многопоточный сервер. Вероятно, он запускал 4 потока на полную мощность, почти монополизировав 4 ядра (я уверен, что он может сделать даже больше на достаточно большой машине). Нажатие 'H' на top показывает каждый поток отдельно.

Вам также следует взглянуть на журнал медленной работы mysql, если он включен.