Итак, я делаю сейчас штанишки для веб-проекта. Такие, чтобы любому подошли. Которые несильно загружая сервер будут записывать данные для профилирования. И, когда сервер сядет в лужу от наплыва посетителей, его попка будет почти сухой: мы будем знать где в живой системе узкие места. Есть несколько проблемок.
Я логирую время загрузки страниц и использования mysql. Cron постоянно отслеживает среднее время использования Mysql, чтобы в случае его увеличения включить профилирование медленных запросов SET profiling=1 на тяжелых страницах, которые больше всего загружают сервер. Вопрос: я прав, предполагая, что увеличение среднего времени Mysql означает превышение возможностей сервера? Таким образом я хочу отслеживать I/O.
Стоит ли отслеживать CPU? Вот функция загруженности процессора, отсюда. Под виндой, как я понял, выдает процент загруженности процессора, а под Linux количество процессов в очереди стека.
function get_server_load() {
if (stristr(PHP_OS, 'win')) {
$wmi = new COM("Winmgmts://");
$server = $wmi->execquery("SELECT LoadPercentage FROM Win32_Processor");
$cpu_num = 0;
$load_total = 0;
foreach($server as $cpu){
$cpu_num++;
$load_total += $cpu->loadpercentage;
}
$load = round($load_total/$cpu_num);
} else {
$sys_load = sys_getloadavg();
$load = $sys_load[0];
}
return (int) $load;
}
Как отслеживать процент загруженности оперативки, не нашел.