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

MySQL начал потреблять около 40% системного процессорного времени и внезапно перестал отвечать

Я использую Debian 6.0.3 x86_64 и MySQL 5.5.20-1 ~ dotdeb.0-log из репозитория Dotdeb. Процесс MySQL начал потреблять много "sy" процессорного времени несколько часов назад, согласно данным этот график. Мне не удалось подключиться к бегу mysqld процесс и пришлось его убить. В логах ничего полезного не нашел. Моя установка кажется довольно распространенной (я предполагаю, что Dotdeb просто распространяет стандартные версии MySQL), и я никогда раньше не видел ничего подобного. Какова возможная первопричина этого? Как я могу предотвратить эту ситуацию в будущем?

Если это произойдет снова, запустите strace -p <PID> -T или поменяйте местами -T с участием -c.

В -T опция печатает временную дельту после каждого системного вызова, что позволяет узнать, сколько времени это заняло. Если вы видите такие звонки, как stat() и open() долго вы можете сделать вывод, и если вы видите такие, как semop() или poll() через много времени можно сделать вывод о другом. То же самое касается и многих из них, но бывает сложнее увидеть, где следующий вариант подходит.

В -c вариант ждет, пока либо программа не завершится, либо вы не выйдете с ctrl-c а затем распечатывает сводку всех системных вызовов и времени, потраченного на каждый тип.

Если повезет, это должно дать вам знать, что делает MySQL. Тогда вам просто нужно понять, что с этим делать.