Микроэкземпляр Amazon EC2 использует процессор на 100%


9

Мой микроэкземпляр Amazon EC2 очень часто использует процессор на 100%. У меня есть только установка WordPress на нем. Я все еще в производственном режиме, поэтому нет пользователей, но я получаю 100% загрузку процессора.

Кто-нибудь знает, как его уменьшить? Я получаю уведомления по электронной почте Amazon каждый час, потому что это длится более 300 секунд.

Я уже переместил свою базу данных в RDS, но не решил эту проблему. Это только сделало это немного лучше. До перехода на RDS с моей базой данных мой веб-сайт всегда полностью разрушался при загрузке только одной веб-страницы.

Мой mysqld.log выдает ошибку errno 12, поэтому я также сделал innodb_buffer_pool_size = 256M в my.cnf, но ничего не принес.

Был бы благодарен за каждый совет.


1
вам нужно контролировать свой экземпляр, чтобы увидеть, что происходит. Вы не говорите, какую ОС вы используете, но если Linux, то быстро и легко. В долгосрочной перспективе вы должны рассмотреть что-то еще.
user9517

В верхней команде Linux, какой процесс съедает ваш процессор. Нажмите (Shift + P), чтобы отсортировать процессы в соответствии с загрузкой ЦП. Спасибо Sandeep
ZVIK

Спасибо @лян! Да, я использую Linux. Так это нормально, что просто очень часто доходит до 100% CPU? Я уже отслеживаю это с тревогой и получаю эти раздражающие уведомления о тревоге по электронной почте несколько раз в день. Вы имеете в виду, что Ec2 не стоит этого, особенно если речь идет о небольших упаковках, только если вы много инвестируете? Спасибо за вашу помощь
Jaba L

Спасибо @ZVIK за вашу помощь! Не могли бы вы объяснить это немного подробнее? Я думаю, что я еще не понимаю это правильно. Где я могу нажать (Shift + P). В командной строке SSH? Извините за мою неопытность. Другая вещь, которая появляется, - то, что мой SSH-терминал становится очень медленным через некоторое время. Чтобы набрать команду ssh и получить ответ, иногда требуется очень много времени. Я думаю, что это тоже из-за использования процессора. Только после перезапуска с помощью команд «sudo service httpd stop / start» и «sudo service mysqld restart» я снова запускаю его быстрее. Но это не длится долго.
Jaba L

@Jaba L Я предполагаю, что в коде есть утечка памяти
ZVIK

Ответы:


7

Имейте в виду, что m2.microэкземпляры просто - они маленькие. Любая реальная нагрузка их максимально увеличит.

Как отметил @zvik в своих комментариях, вы должны выяснить, какие процессы потребляют больше всего памяти и / или циклов ЦП. Он порекомендовал запустить topкоманду, которая есть в дистрибутивах Linux. Нажав Shift-P, он будет сортировать их в зависимости от загрузки процессора. Вам нужно будет использовать эту информацию, чтобы выяснить, где находится узкое место. Например, если это работает Apache, конфигурация по умолчанию для Apache может запускать больше процессов, чем способен сервер.

Попробуйте запустить topи посмотреть, какие команды потребляют больше всего ресурсов.


1
Я проверил это, и Apache использует большую часть ресурсов. m2.micro действительно легко справляется с нагрузкой. Я думал, что смогу использовать микро для небольшой производственной площадки, но, к сожалению, это вообще невозможно. Спасибо за вашу помощь
Jaba L

15

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

По сути, ваша виртуальная машина простаивает, и Amazon «заимствует» некоторые циклы вашего процессора, чтобы отдать их кому-то, кто в ней нуждается - это стандартная практика для виртуализированной среды, где ресурсы физического сервера, такие как использование ОЗУ и циклы процессора, часто чрезмерно перерасходованы. ,

Чтобы проверить кражу процессора, запустите topи посмотрите %stзначение, выделенное здесь:

верхний вывод команды

Если это значение отличается от нуля, это означает, что циклы ЦП вашей виртуальной машины «заимствованы».


1
Большое спасибо @ Craig-Watson за ваш ответ. Я только что проверил% st, и это между 0-5%. Спасибо за ссылку тоже было очень информативно
Jaba L
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.