2016-02-11 5 views
-2

Я считаю, что мой экземпляр продолжает убивать MySQL каждые несколько дней из-за высокой загрузки процессора или памяти. База данных несколько больших (256 MB) Я пробовал верхнюю команду при подключении к примеру, вот снимок:Amazon EC2 Instance Killing MySQL

Cpu(s): 64.3%us, 1.0%sy, 0.0%ni, 34.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.3%st 
Mem: 2051644k total, 2019380k used, 32264k free,  4196k buffers 
Swap:  0k total,  0k used,  0k free, 284064k cached 

PID USER  PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 
2573 apache 20 0 554m 145m 10m S 40.6 7.3 3:18.79 httpd 
2572 apache 20 0 661m 151m 10m S 16.6 7.6 3:37.72 httpd 
2481 mysql  20 0 861m 170m 4736 S 8.7 8.5 8:15.37 mysqld 

Я видел использование процессора доходить до 80% просто смотреть для несколько минут. Что я могу сделать, чтобы уменьшить использование процессора или памяти? Я увеличил размер экземпляра до среднего, и он никогда не падает, однако это довольно дорого. Благодарю.

+0

1. ServerFault. 2. Это случается, когда у вас заканчивается память. – kervin

ответ

1

Рассматривая статистику, у вас осталось много свободной памяти. Вы можете легко столкнуться с ситуацией, когда linux начнет убивать процессы, чтобы освободить память. В системном журнале будут отображаться сообщения, относящиеся к oom-killer.

Что вы можете сделать?

  1. Включить обмен памяти. Позволяет вам превышать 2 ГБ, но может быть очень медленным.
  2. Настройте конфигурацию mysql, чтобы использовать меньше кеширования.
  3. Отключите все модули apache, которые вы не используете.
  4. Похоже, что у вас может быть стандартный стек LAMP. Если это так, настройте php с помощью fcgi вместо mod_php.
+0

Это хороший совет. Кроме того, я бы добавил возможность запуска MySQL на отдельном сервере, чтобы он не конкурировал за системные ресурсы с Apache. –

Смежные вопросы