Comments 25
Насчет udp рекомендую посмотреть pinba.
Изначально pinba делалась для php, но уже есть nginx модуль для pinba.
Я думаю, модуль apache для pinba сделать будет не так сложно.
Изначально pinba делалась для php, но уже есть nginx модуль для pinba.
Я думаю, модуль apache для pinba сделать будет не так сложно.
+2
Спасибо кстати за pinba. Написать UDP не сложно. На самом деле даже для Linux setproctitle передрать не сложно. Устал на поиске listen queue :))) Основная сложность оказалась на вот этом Listen Queue — очень нестандартная вещь в смысле информации, хотя в ядрах имеется с BSD4.4.
0
Да setproctitle и передирать не надо, есть минимум одна готовая либа: git.altlinux.org/people/ldv/packages/setproctitle.git
+1
А вот точно ли rx_queue это оно? Я вот гуглением не понял. Такое впечатление, что там наполненность буферов. Во всяком случае netstat и ss показывают совершенно разные значения Recv-Q и Sent-Q для одного и того же на одной машине в один момент времени. А вот ss лезет в netlink(7) в нормальной ситуации.
0
Хм… по исходникам вообще похоже на «оно». Собственно в netlink попадает inet_diag_msg.rqueue который явно в /usr/src/linux/net/ipv4/tcp_diag.c:
if (sk->sk_state == TCP_LISTEN) {
r->idiag_rqueue = sk->sk_ack_backlog;
r->idiag_wqueue = sk->sk_max_ack_backlog;
} else {
r->idiag_rqueue = max_t(int, tp->rcv_nxt - tp->copied_seq, 0);
r->idiag_wqueue = tp->write_seq - tp->snd_una;
}
0
P.S. Некстати, хочу дополнить его функцией периодического сброса статистики по UDP куда-нибудь. Чуть более полной.— добавь в collectd
0
А с каким mpm дружит? peruser?
0
И вспомнили же труп…
Судя по коду он будет работать без проблем с prefork и основанным на нем, такими как itk.
Судя по коду он будет работать без проблем с prefork и основанным на нем, такими как itk.
0
Проверял и на prefork и на worker. На worker по очевидным причинам запросы не показывает. На event тоже запросы не показывает, а статистику не проверял на нем.
0
peruser/itk не проверял. Должен показывать статистику… запросы… а фиг знает. Это в зависимости где он форк делает. И да, будут врать со статусом.
Не надо использовать ни itk, ни peruser. Запускайте каждому свой апач. Там перерасход памяти под буфера, да под конфиг смехотворный. А и FreeBSD и вроде даже Linux уже 100 лет умеют mmap´ить и .so, и запускаемые файлы, там вообще перерасхода 0. Под FreeBSD «каждому свой апач» вообще штатно из кородки идёт — взгляните внутрь /usr/local/etc/rc.d/apache24. С Linux сложнее, они такие затейники с конфигурациями…
Не надо использовать ни itk, ни peruser. Запускайте каждому свой апач. Там перерасход памяти под буфера, да под конфиг смехотворный. А и FreeBSD и вроде даже Linux уже 100 лет умеют mmap´ить и .so, и запускаемые файлы, там вообще перерасхода 0. Под FreeBSD «каждому свой апач» вообще штатно из кородки идёт — взгляните внутрь /usr/local/etc/rc.d/apache24. С Linux сложнее, они такие затейники с конфигурациями…
0
Для Linux давно уже использую модифицированный модуль mod_proctitle(не этот, а старый).
К нему собрал библиотеку с одной функцией setproctitle.
Есть в Linux проблема с длиной тайтла, но я ее решаю в Apache правкой скрипта инициализации.
Работает как часы уже 3-4 года.
К нему собрал библиотеку с одной функцией setproctitle.
Есть в Linux проблема с длиной тайтла, но я ее решаю в Apache правкой скрипта инициализации.
Работает как часы уже 3-4 года.
0
Ну вот мне надо просто взять и туда же воткнуть тоже такую функцию :) У всех есть проблема с длиной тайтла :) FreeBSD просто не устанавливает его, если длина превышена. Я вот думаю, не внедрить ли враппер-функцию, которая резать будет.
0
Я как-то кроссплатформенный setproctitle из исходников proftpd выдирал, там оно вполне компактно и не пугающе.
+1
Вам бы документацию по этому механизму в Linux почитать.
Проблемы ведь в том что длина тайтла должна быть такой же как длина argv массива.
По докам можно дописать еще в env массив, но по факту не работает.
Т.е. нужно сделать длинным argv массив.
А ограничивать длину все равно нужно, иначе переполнение будет.
Проблемы ведь в том что длина тайтла должна быть такой же как длина argv массива.
По докам можно дописать еще в env массив, но по факту не работает.
Т.е. нужно сделать длинным argv массив.
А ограничивать длину все равно нужно, иначе переполнение будет.
+1
Sign up to leave a comment.
mod_proctitle — модуль Apache для отображения запросов и краткой статистики в имени программы (вывод top и ps)