ФорумПрограммированиеPHP для идиотов → Парсер CPU на PHP

Парсер CPU на PHP

  • Faster

    Сообщения: 1159 Репутация: N Группа: Кто попало

    Spritz Июль 27, 2011, 11:20 д.п., спустя 7 минут 42 секунды

    чет мутняк какой то.
    сайт(ы) тестил на отдачу? может mysql
  • tartar

    Сообщения: 186 Репутация: N Группа: Кто попало

    Spritz Июль 27, 2011, 11:37 д.п., спустя 16 минут 53 секунды

    после полного перехода на нгинкс пол года назад, к апачу вообще не тянет

    а установка nginx как front-end к apache прокатит?

    сайт(ы) тестил на отдачу? может mysql

    В команде top когда Cpu 100% mysql нет в помине, там только процесс apache2

    насчет теста на отдачу, можете поделится Вашим способом тестирование ?
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz Июль 27, 2011, полдень, спустя 23 минуты 8 секунд

    а установка nginx как front-end к apache прокатит?

    честно - не знаю, поможет ли, но, имхо, все-таки надо найти причину такого поведения апача
  • fgets

    Сообщения: 1099 Репутация: N Группа: Кто попало

    Spritz Июль 27, 2011, 1:07 п.п., спустя 1 час 7 минут 10 секунд


    установка nginx как front-end к apache


    Это не дает ускорения, наобот замедлит работу сервера, делают это умные люди, которые разделяют проект на статику и динамику, динамику бросая на апач а статику на нжинкс. При этом апач все равно может упасть и ничего не спасет.
  • tartar

    Сообщения: 186 Репутация: N Группа: Кто попало

    Spritz Июль 27, 2011, 1:25 п.п., спустя 17 минут 7 секунд

    Кому интересен скрипт вот немного переделанный

    <?php
    if (!function_exists("ssh2_connect")) echo("function ssh2_connect doesn't exist");
    // log in at server1.example.com on port 22
    if(!($con = ssh2_connect("ssh-ip", 22))){
    echo "fail: unable to establish connection\n";
    } else {
    // try to authenticate with username root, password secretpassword
    if(!ssh2_auth_password($con, "ssh-user", "ssh-password")) {
    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("|(\d+)\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+");
    if($total_cpu >= 90) {$Alert = fwrite($open_logs, date("Y-m-d H:i:s")." Alert: CPU $total_cpu %\n");}

    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 = "ERROR";} else {$result = "SUCCESS";}
    // Пишем в лог
    $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");
    }
    }
    }

    // Логи кто подключился к скрипту
    $confp = fopen("conConnect.txt", "a+");
    $add = fwrite($confp, date("Y-m-d H:i:s")." Подключение с IP:".$_SERVER['REMOTE_ADDR']."\n");
    ?>
  • mexys

    Сообщения: 19 Репутация: N Группа: Кто попало

    Spritz Июль 28, 2011, 4:43 д.п., спустя 15 часов 18 минут 21 секунду



    Согласен, питался выяснить в логах папача, нет ошибок во время скачка CPU
    - Проверил и логи сайтов (хз мб ддосят) чисты хотя гугл заглядывает но он не только в это время заглядывал

    Посмотри лог PHP. Можешь еще попробовать поставить поменьше (в разумных пределах) max_execution_time и memory_limit чтобы увидеть, на чем такое потребление начинается. Лиюо просто мониторь хагрузку почаще. Как только загрузка пошла, смотри в логи апача, куда обращаются обращаются
  • tartar

    Сообщения: 186 Репутация: N Группа: Кто попало

    Spritz Июль 28, 2011, 2:32 п.п., спустя 9 часов 48 минут 38 секунд

    mexys, спасибо за совет попробую.

    инфометр правду сказал http://info-metr.ru/?do=view&info=44
  • intval

    Сообщения: 3 Репутация: N Группа: Кто попало

    Spritz Авг. 15, 2011, 12:37 д.п., спустя 17 дней 10 часов 5 минут

    Это не дает ускорения, наобот замедлит работу сервера, делают это умные люди, которые разделяют проект на статику и динамику, динамику бросая на апач а статику на нжинкс. При этом апач все равно может упасть и ничего не спасет.

    Дядя петя что за хуету ты несёшь? При связке nginx+apache количество процессов апача падает в несколько раз, из-за того что статику раздаёт nginx. А если их количество упадёт, то что будет, да, петя, правильно ускорение.
    Это не дает ускорения, наобот замедлит работу сервера

    Ты имел в виду:
    Это не дает ускорения, нанобот замедлит работу сервера

    Не?:D
  • fgets

    Сообщения: 1099 Репутация: N Группа: Кто попало

    Spritz Авг. 15, 2011, 11:25 п.п., спустя 22 часа 48 минут 40 секунд

    Новый выпуск кривого зеркала начался?
    ри связке nginx+apache количество процессов апача падает в несколько раз

    чо правда штоле
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz Авг. 16, 2011, 12:04 д.п., спустя 38 минут 42 секунды

    чо правда штоле

    прикинь .. :))

    вспомнилось видео

    http://vkontakte.ru/video_ext.php?oid=711949&id=140755625&hash=c105cff903139eb4&sd
    Сапожник без сапог
  • ivanscm

    Сообщения: 1251 Репутация: N Группа: Джедаи

    Spritz Авг. 16, 2011, 1:18 п.п., спустя 13 часов 14 минут 4 секунды

    люблю всякие баги и тесты на пользователях

    http://screencast.com/t/itQ4dCYyp
    С возвращением, Пiха! hyperoff.ru - качественный хостинг php
  • intval

    Сообщения: 3 Репутация: N Группа: Кто попало

    Spritz Авг. 21, 2011, 11:36 п.п., спустя 5 дней 10 часов 17 минут


    чо правда штоле

    нехуй хуету нести
  • PandoraBox2007

    Сообщения: 21 Репутация: N Группа: Адекваты

    Spritz Дек. 17, 2011, 7:09 д.п., спустя 117 дней 7 часов 33 минуты

    высокий WCPU в основном показывает на плохую производительность с БД

Пожалуйста, авторизуйтесь, чтобы написать комментарий!