CPU Watcher

Иногда возникает необходимость замера производительности процессоров как в однопоточном так и в многопоточном режимах. Например для сравнения с другими процессорами, выявления стабильности в предоставлении вычислительных ресурсов в процессе виртуализации, а также выявления производительности процессора в режиме физической и виртуальной машины или контейнера.

Особенно замер производительности процессора поможет в выборе хостинговой площадки (окружения) для сайта, standalone- или web-приложения.

Когда вы размещаете какое либо приложение в сети в виртуальном окружении очень важно чтобы показатели производительности процессора не проседали так как это может привести к подвисаниям и ошибкам в результате их появления. Очень важно чтобы приложение отвечало быстро иначе у робота или у человека возникнут негативные впечатления о его работе.

Набор консольных PHP-скриптов «CPU Watcher» позволяет определить производительность одного или нескольких ядер процессора как за фиксированный промежуток времени так и за время ограниченное пользователем вручную. 

Суть набора скриптов проста:

Скрипт Start запускает нагрузку в несколько потоков в количестве установленым пользователем и сохраняет соответствующие идентификаторы процессов.

Скрипт Loop запускатет имитацию полезной нагрузки — простое выполнение перебора из 1000 пустых циклов и сохраняет в лог-файл с именем потока информацию о времени перебора.

Скрипт Stop выполненяет остановку всех потоков.

Пользователь может вручную запустить

./start 6

и остановить замер

./stop

Если нужно жестко ограничить время (60 секунд) можно выполнить команду:

./start 6 && sleep 60 && ./stop

Каждый лог-файл содержит информацию о циклах и времени затраченном на каждый цикл. На основе данных логфайла можно построить красивые диаграммы с помощью электронных таблиц Libre(Open)Office Calc, Microsoft Excel.

Помимо процессора на значения скрипта loop может повлиять версия интерпритатора PHP. PHP 7 значительно шустрее PHP5. Чтобы скрипт loop не зависел от версии php его можно портировать в бинарное приложение C/C++.

Разделы сайта: