@denis_vl
Программист. Админ. Да и от скуки - на все руки.

Как найти причину высокой нагрузки на CPU системными вызовами из MySQL?

Добрый день,
Имеется следующая конфигурация виртуальной машины в VMWare ESXi 5.0:
1. CPU 2.0 GHz - 2 процессора по 2 ядра.
2. Диск SCSI
3. Память 2 Гигабайта

Возникает следующая проблема. При загрузки страниц сайта, MySQL загружает ядра процессора на 100%. На один запрос тратится 10-15 секунд. Но загрузка идет не USER, а SysCall.
Вот скриншот htop:
56bb5a6a7eb74828b8bcfe80e57927f9.png
А вот результаты strace:
]# strace -c -p 1730
Process 1730 attached
Process 1730 detached
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
100.00   98.314338    24578585         4           poll
  0.00    0.001085         217         5           clone
  0.00    0.000000           0         5           accept
  0.00    0.000000           0         5           getsockname
  0.00    0.000000           0        15         5 setsockopt
  0.00    0.000000           0        30           fcntl
  0.00    0.000000           0         1           restart_syscall
------ ----------- ----------- --------- --------- ----------------
100.00   98.315423                    65         5 total

Видно, что процессор грузится системным вызовом poll(), но причину не могу понять.
Может кто сталкивался?
  • Вопрос задан
  • 238 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Wol_fi
php, js, mysql, highload
банально конечно, но как у вас с оптимизацией? Индексы есть? Конфиги самого mysql правили?
Ответ написан
coderisimo
@coderisimo
Можно посмотреть лог медленных запросов.
при наличии вопиющих случаев - заняться оптимизацией.
вот на что ИМХО можно обратить внимание :

1) Посмотреть explan медленных запросов, при необходимости создать нужные индексы
2) используете ли кэширование? (не только в БД , но и вообще)
3) что с конфигами мускула? у него достаточно памяти? ведь у вас может быть куча памяти на сервере, но мускул сам по себе не может ее использовать, ему надо разрешить.

вообще поиски узких мест на сервере очень интересный процесс... но сложный (( удачи!
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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