Я достаточно долгое время использовал связку Init+Monit для запуска скриптов node, но со временем стал натыкаться на минусы такой связки. Одна из самых серьёзных проблем — отсутствие возможности вывести лог в разные файлы в ранних версиях start-stop-daemon. Версия, поставляемая с Debian Lenny не поддерживает такой функционал, а сборка новой версии тянет за собой уйму непонятного барахла. В итоге, попробовав разные варианты, я остановился на runit как замене Init-скриптам.
После предыдущего эксперимента мне понравилось работать с GraphViz, к тому же я давно хотел понять как именно использовать его для отрисовки графов, поэтому я решил сделать небольшой скриптик с использованием dot.
Сегодня пришлось столкнуться с необходимостью сделать профилирование для скрипта который исполнялся слишком долго. Для таких целей у меня стоит связка из XDebug + WinCacheGrind. XDebug отработал как положено, но файл cachegrind.out получился размером ~200 метров. WinCachegrind по каким то причинам каждый раз зависал, пытаясь его переварить (подозреваю что из за большого размера). В результате пришлось пойти другим путём.
Проблема решилась с помощью xdebugtoolkit и Graphviz. Graphviz и Python (необходимый для работы тулкита) у меня уже стояли. Оставалось скачать сам xdebugtoolkit. В него входит утилита cg2dot, преобразующая cachegrind-файл в граф вызовов (с указанием какой вызов сколько времени занял). Потом по получившимся данным утилита dot из graphviz просто строит график в формате PNG, на котором неплохо видно где же застревает PHP. Сам вызов выглядит примерно так:
cg2dot.py "D:\cachegrind\stage\cachegrind.out.16084" | "C:\Program Files\Graphviz2.24\bin\dot.exe" -Tpng -ograph.png
Я ввел эту команду и ушёл на час гулять. В результате получился файл graph.png по которому уже было понятно где и что работает медленно.

Неделю назад в замечательном комиксе xkcd была упомянута интересная тема: прокси, задерживающий запросы к определённым сайтам на 30 секунд, как средство борьбы с прокрастинацией. Естественно, мне захотелось реализовать такую штуку но время для этого нашлось только сейчас.
Ну что ж, серия обзоров хостингов похоже приближается к концу
Сегодня я посмотрю на последний найденный мной сервис: Nodester (бывший NodeFu). Как обычно, чтобы получить к нему доступ надо записаться на бета-тестирование через вызов API:
curl -X POST -d "email=example@example.com" http://nodester.com/coupon
В полку node.js-хостингов опять пополнение. В бой вступают свежие силы в лице Duostack и Nodester. Сегодня мы посмотрим поближе на первого кандидата
Как и многие другие node-хостинги, Duostack пока находится в режиме бета-тестирования. Доступ можно попросить на главной странице проекта, ключи высылаются сериями. Ждать вряд ли придётся долго.
Топик с “числом Бумбурума”, хоть и привёл к моему бану на Хабре, позволил на несколько часов подставить реальный сайт на Express под большой трафик. Результат интересный: сайт один раз упал, выдав ошибку открытия файла, но после перезапуска node работал нормально. Трафик за пару часов составил около 27000 просмотров, с очень быстрым ростом (выход топика на главную). К сожалению трафик по часам из Google Analytics получить похоже нельзя, было бы более наглядно.

