Я использую 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. Тогда вам просто нужно понять, что с этим делать.