|
tartar ↓
|
 |
|
27 Июль, 2011, 02:04:56
|
НЕ ХУЕТА!
ХУЕТА!
|
Карма: -1
Сообщений: 166 Сила слова: -0.6
|
Здравствуйте
Меня где то неделю начал мучать Apache, пожирает 90-100% CPU
Сайты в этот момент открывается с +1 ~ +3 сек (Очень долго)
*Сразу скажу я не мега-сисОдмин устанавливал apache по мануалам.*
Спасал меня только рестарт apache из консоли debian-a, после рестарта где то 2-4 часа apache не поднимался даже до 20%
был стабилен 5~10%
Естественно меня это заебало и начел киллить(kill) процесы апач с 90%
Сделал для этого вот такой парсер и поставил на CRON каждые 20 мин.
<?php
if (! function_exists("ssh2_connect")) die("function ssh2_connect doesn't exist");
// log in at server1.example.com on port 22
if(! ($con = ssh2_connect ("хуй.хуй.хуй.хуй", 22))){
echo "fail: unable to establish connection\n";
} else {
// try to authenticate with username root, password secretpassword
if(!ssh2_auth_password ($con, "рот", "опиздаололо")) {
echo "fail: unable to authenticate\n";
} else {
// allright, we're in!
echo "okay: logged in...\n";
// execute a command
if (! ($stream = ssh2_exec ($con, "top -b -n 1 -u www-data"))) {
echo "fail: unable to execute command\n";
} else {
// collect returning data from command
stream_set_blocking($stream, true);
$data = "";
while ($buf = fread($stream, 4096)) {
$data .= $buf. "<br />";
#echo $buf
}
$fp = fopen("logs.txt", "w+");
$write = fwrite($fp, $data);
fclose($stream);
}
}
}
// Сохраняем логи команды top
$FileData = file("logs.txt");
// Удаляем ненужные данные из массива
unset($FileData[0], $FileData[1], $FileData[2], $FileData[3], $FileData[4], $FileData[5]);
for($i= 30; $i <= 120; $i++ ) {unset($FileData[$i]); }
// С помощью регулярных выражений развиваем данные в простой массив
foreach($FileData as $k) {
$k = preg_replace("#(\s+)#", " ", $k);
preg_match_all("|(.*)\s(.*)\s(.*)\s(.*)\s(.*)\s(.*)\s(.*)\s(.*)\s(.*)\s(.*)\s(.*)\s(.*)\s|isU", $k, $matches);
$a++;
$logs[$a]['pid'] = $matches[1][0];
$logs[$a]['percent'] = $matches[9][0];
$logs[$a]['time'] = $matches[11][0];
$logs[$a]['proces'] = $matches[12][0];
$total_cpu += $matches[9][0];
}
// Идет проверка на cpu, если процесс работает более 5 минут и пожирает более 20% из CPU
// убиваем процесс и заносим его в логи
echo "Total CPU: $total_cpu %<br />";
$open_logs = fopen("KillLogs.txt", "a+");
foreach ($logs as $k => $n) {
echo "PID: {$n['pid']} CPU: {$n['percent']} Time: {$n['time']} Proces: {$n['proces']}<br />";
if($total_cpu >= 90) {
if($n['time'] > "03:00:00" and $n['percent'] > 20 and $n['proces'] == "apache2") {
// Убиваем процесс
if(! (ssh2_exec ($con, "kill ". $n['pid']))) {$result = "Ещё жив падла!"; } else {$result = "Умер сука!"; }
// Пишем в лог
$AddToKill = fwrite($open_logs, date("Y-m-d H:i:s"). " PID: {$n['pid']} CPU: {$n['percent']} Time: {$n['time']} Proces: {$n['proces']} - $result\n");
}
}
}
?>
Получаю такой результат
Total CPU: 0 %
PID: CPU: S Time: %MEM Proces: TIME+
PID: 24323 CPU: 0.0 Time: 0:05.69 Proces: apache2
PID: 24384 CPU: 0.0 Time: 0:03.02 Proces: apache2
PID: 24414 CPU: 0.0 Time: 0:02.89 Proces: apache2
Скрипт работает
Но вот меня интересует вопрос:
Какие последствия могут быть если я кильну процесс который пожирает CPU и работает более чем 5 мин ?
Если это пользователь у него вроде должен в этот момент оборваться конект с сайтов... нет?
Или процессы www-data восстанавливаются если пользователь запросил опять страницу ?
|
|
|
|
« Последнее редактирование: 27 Июль, 2011, 02:04:56 от phpdude »
|
Записан
|
|
|
|
|
phpdude ↓
|
 |
|
27 Июль, 2011, 12:46:03 , спустя
|
НЕ ХУЕТА!
ХУЕТА!
|
я - ЭМО
Группа: в ухо Карма: 345
Сообщений: д-о-х-у-я! Сила слова: 1.66
|
спасибо за ип, рута и его пароль!
|
|
|
|
|
Записан
|
забанен. могу забанить других, пишите в личку BEER. Helping ugly people have sex since 1862.
|
|
|
|
tartar ↓
|
 |
|
27 Июль, 2011, 12:54:33 , спустя 8 минут 30 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
Карма: -1
Сообщений: 166 Сила слова: -0.6
|
Бля во я лоханулся .... пиздец
удалите конеты )
|
|
|
|
|
Записан
|
|
|
|
|
tartar ↓
|
 |
|
27 Июль, 2011, 01:04:37 , спустя 10 минут 4 секунды
|
НЕ ХУЕТА!
ХУЕТА!
|
Карма: -1
Сообщений: 166 Сила слова: -0.6
|
лад, хорошо что новый vps не успел на нем что то поставить ))
Но все равно пиздец ))
|
|
|
|
|
Записан
|
|
|
|
|
tartar ↓
|
 |
|
27 Июль, 2011, 01:19:22 , спустя 14 минут 45 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
Карма: -1
Сообщений: 166 Сила слова: -0.6
|
Теперь все норм бывает и такое... Спустя 19 секунд добавил Вопрос остается в силе )
|
|
|
|
|
Записан
|
|
|
|
|
phpdude ↓
|
 |
|
27 Июль, 2011, 01:22:17 , спустя 2 минуты 55 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
я - ЭМО
Группа: в ухо Карма: 345
Сообщений: д-о-х-у-я! Сила слова: 1.66
|
хехе)) а чо яйки то подхал? зазвенели? xD
|
|
|
|
|
Записан
|
забанен. могу забанить других, пишите в личку BEER. Helping ugly people have sex since 1862.
|
|
|
|
tartar ↓
|
 |
|
27 Июль, 2011, 01:26:43 , спустя 4 минуты 26 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
Карма: -1
Сообщений: 166 Сила слова: -0.6
|
phpdude, а то)) забыл этот код отредактировать после того как писать сюда.
Дуд можешь пожалуйста IP замазать ))
|
|
|
|
|
Записан
|
|
|
|
|
phpdude ↓
|
 |
|
27 Июль, 2011, 02:05:11 , спустя 38 минут 28 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
я - ЭМО
Группа: в ухо Карма: 345
Сообщений: 20790 Сила слова: 1.66
|
тебе все таки удалось победить мою лень)) замазал
|
|
|
|
|
Записан
|
забанен. могу забанить других, пишите в личку BEER. Helping ugly people have sex since 1862.
|
|
|
|
artoodetoo ↓
|
 |
|
27 Июль, 2011, 02:21:03 , спустя 15 минут 52 секунды
|
НЕ ХУЕТА!
ХУЕТА!
|
с особым цинизмом
Группа: в ухо Карма: 124
Сообщений: 3805 Сила слова: 3.26
|
хороший скриптик, плюсанул.
|
|
|
|
|
Записан
|
|
|
|
|
phpdude ↓
|
 |
|
27 Июль, 2011, 02:25:26 , спустя 4 минуты 23 секунды
|
НЕ ХУЕТА!
ХУЕТА!
|
я - ЭМО
Группа: в ухо Карма: 345
Сообщений: д-о-х-у-я! Сила слова: 1.66
|
Какие последствия могут быть если я кильну процесс который пожирает CPU и работает более чем 5 мин ?
да нихуя страшного, ктото просто увидит "соединение оборвано" :-)
и то возможно не оборвается, думаю зависит от типа процесс менеджменат апача - mpm, prefork.
именно апачу не тсрашно потерять форки, ты главное рутовый процесс не пристрели xD
если пристрелишь - уже не будут они оживать, надо будет перезапускать апач)
|
|
|
|
|
Записан
|
забанен. могу забанить других, пишите в личку BEER. Helping ugly people have sex since 1862.
|
|
|
|
mexys ↓
|
 |
|
27 Июль, 2011, 08:13:59 , спустя 5 часов 48 минут 33 секунды
|
НЕ ХУЕТА!
ХУЕТА!
|
Карма: 0
Сообщений: 19 Сила слова: 0
|
Все это конечно хорошо, но лучше с причиной разобраться чем с симптомами. Сам по себе апач таким вещам не особо подвержен.
|
|
|
|
|
Записан
|
|
|
|
|
artoodetoo ↓
|
 |
|
27 Июль, 2011, 08:22:53 , спустя 8 минут 54 секунды
|
НЕ ХУЕТА!
ХУЕТА!
|
с особым цинизмом
Группа: в ухо Карма: 124
Сообщений: 3805 Сила слова: 3.26
|
tartar, капитан очевидность сказал правду.
ты не выяснил отчего тормоза? какие модули апача установлены, расширения php? были сообщения, что иногда eacclerator создает дикие тормоза.
|
|
|
|
|
Записан
|
|
|
|
|
tartar ↓
|
 |
|
27 Июль, 2011, 11:04:35 , спустя 2 часа 41 минуту 42 секунды
|
НЕ ХУЕТА!
ХУЕТА!
|
Карма: -1
Сообщений: 166 Сила слова: -0.6
|
ты главное рутовый процесс не пристрели xD
Сортировку сделал по "top -b -n 1 -u www-data" так что root сюда не попадет.
Все это конечно хорошо, но лучше с причиной разобраться чем с симптомами. Сам по себе апач таким вещам не особо подвержен.
На vps установлен LAMP Server (linux, apache, mysql, php)
Когда CPU 100%, на вершине команды htop вот это строка
4565 www-data 20 0 292M 18352 4856 S 99% 3.5 0:03.51 /usr/sbin/apache2 -k start
Согласен, питался выяснить в логах папача, нет ошибок во время скачка CPU
- Проверил и логи сайтов (хз мб ддосят) чисты хотя гугл заглядывает но он не только в это время заглядывал
eacclerator создает дикие тормоза
хм, да eacclerator установлен попробую удалить его Спустя 1 минуту 48 секунд добавил удалось победить мою лень)) замазал
большое спасибо :)
|
|
|
|
|
Записан
|
|
|
|
|
fgets ↓
|
 |
|
27 Июль, 2011, 11:09:51 , спустя 5 минут 16 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
Карма: -1
Сообщений: 1119 Сила слова: -0.09
|
нахуй нужен этот апач в пизду его блять
|
|
|
|
|
Записан
|
эй детка не ссы в бассейн
Если в бочку с говном положить ложку меда — получится бочка говна. Если в бочку с медом положить ложку говна, не обольщайтесь ...
|
|
|
|
Sinkler ↓
|
 |
|
27 Июль, 2011, 11:13:05 , спустя 3 минуты 14 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
Похуй, пляшем!
Группа: Джедаи Карма: 73
Сообщений: 6806 Сила слова: 1.07
|
кстати, того же мнения, как-то после полного перехода на нгинкс пол года назад, к апачу вообще не тянет
|
|
|
|
|
Записан
|
|
|
|
|