Как решить высокую нагрузку на процессор Apache? (Убунт + EC2) - PullRequest
9 голосов
/ 28 декабря 2010

Я настраиваю экземпляр в Amazon EC2, сервере ubuntu 10.04, на котором работают apache2, php5 и mysql.

Если в системе используется менее 10 пользователей, сервер получает 20%, 30%, 40%Загрузка процессора.

Используя top, я вижу в первых строках:

11121 www-data 20 0 71940 20m 11m S |22,6 |1,2 |0: 00.68 apache2
10108 www-data 20 0 72196 22m 12m S |21,9 |1,3 |1: 15,81 apache2
11122 www-data 20 0 71936 20m 11m S |7.3 |1,2 |0: 00.68 apache2
10111 www-data 20 0 72196 22m 12m S |1,7 |1,3 |1: 16.43 apache2

Сумма ЦП в этих 4 строках равна 53,5.

Как я могу увидеть более подробно процессы?
Как я могу посмотреть навыполняются сценарии, сколько времени занимает, сколько процессора потребляет каждый из них?

Спасибо.

Ответы [ 3 ]

8 голосов
/ 10 апреля 2012

Я решил проблему, установив Apache mod Status - http://httpd.apache.org/docs/2.0/mod/mod_status.html. Там вы можете увидеть каждый PID для того, какой URL используется.

Надеюсь, это кому-нибудь поможет ...

3 голосов
/ 31 декабря 2010

Один из способов понять, что он делает, - это использовать lsof (возможно, вам придется установить его).Чтобы увидеть, к каким процессам в вашем примере вы обращаетесь, вы должны сделать следующее:

lsof -p 11121,10108,11122,10111

Это покажет вам все файлы, открытые процессом.Обычно высокая загрузка процессора в процессе Apache связана с тем, что веб-сайт пытается выполнить на стороне сервера.

2 голосов
/ 28 декабря 2010

Вы можете использовать strace для родительского процесса, чтобы лучше понять, что он делает.

...