Как да се реши високото натоварване на процесора от apache? (ubuntu+ec2)

Настройвам екземпляр в Amazon EC2, сървър на ubuntu 10.04, работещ с apache2, php5 и mysql.

При по-малко от 10 потребители, които използват системата, сървърът получава 20%, 30%, 40% натоварване на процесора.

Използване на горната част виждам в първите редове:

11121 www-данни 20 0 71940 20m 11m S | 22.6 | 1.2 | 0:00.68 apache2
10108 www-данни 20 0 72196 22m 12m S | 21.9 | 1.3 | 1:15.81 apache2
11122 www-данни 20 0 71936 20m 11m S | 7.3 | 1.2 | 0:00.68 apache2
10111 www-данни 20 0 72196 22m 12m S | 1.7 | 1.3 | 1:16.43 apache2

Сумата на процесора в тези 4 реда е 53,5.

Как мога да видя по-подробно процесите?
Как мога да разгледам изпълняваните скриптове, времето, което отнема, количеството процесор, който всеки от тях консумира?

Благодаря.


person Tiago Gouvêa    schedule 27.12.2010    source източник


Отговори (3)


Реших проблема, като инсталирах Apache mod Status - http://httpd.apache.org/docs/2.0/mod/mod_status.html. Там можете да видите всеки PID на какъв URL адрес се използва.

Надявам се да помогне на някого...

person Softy    schedule 10.04.2012

Един от начините да видите какво прави е да използвате lsof (може да се наложи да го инсталирате). За да видите до какво имат достъп процесите във вашия пример, ще направите следното:

lsof -p 11121,10108,11122,10111

Това ще ви покаже всички файлове, които процесът е отворил. Обикновено високият процесор на процеса Apache се дължи на нещо, което уебсайтът се опитва да направи от страната на сървъра.

person Jason Janelle    schedule 30.12.2010

Можете да използвате strace в родителския процес, за да получите по-добра представа какво прави.

person Kyle Buser    schedule 27.12.2010
comment
Добре.. Използвам го.. но искам да знам повече за процеса Apache. Не само как се обработва, но и какво. Какъв скрипт се изпълнява сега? Колко време изразходва всеки скрипт от моя процесор? - person Tiago Gouvêa; 28.12.2010