myhand

Рейтинг
278
Регистрация
16.09.2009

technomaster, сойдет, если правильно выставили.

zexis:
В документации на PHP не рекомендуется использовать Apache 2.0
На высоко нагруженных сайтах.

http://www.php.net/manual/en/install.unix.apache2.php

Warning
We do not recommend using a threaded MPM in production with Apache 2. Use the prefork MPM instead, or use Apache 1. For information on why, read the related FAQ entry on using Apache2 with a threaded MPM

Вы буржуйский язык совсем читать не умеете?

Там написано, что worker MPM не рекоммендуется использовать (ибо PHP

еще не thread-safe). Но Prefork MPM тоже есть в Apache2 (собирается по-умолчанию), функционал этого MPM сохранен. Так что никто не запрещает использовать

стабильную ветку апача, вместо античной (на процетированной ссылке есть

подробные инструкции).

apache2-mpm-itk - это версия, основанная на prefork. Вот его бы я точно в

продакшен не использовал. Ибо apache2+cgi(suexec) мало чем хуже itk

в плане производительности, а во всем остальном - лучше.

Обычно считается, что по числу доступных ядер. На самом

же деле, идея поставить X и померить результат - гораздо разумнее.

vapetrov:

Но я хрен что там найду в этом логе - чилдов много и десятки запросов в секунду к серверу...

Берете произвольный чайлд и смотрите. В конце концов к нему придут за нужным

сайтом, вордпрес можно будет узнать по тем файлам, к которым апач обращается.

как вариант - включать strace по триггеру проблемного события (резко возростает нагрузка на /tmp)

vapetrov:
Как практически это сделать на продакшн-сервере с десятком сайтов со средней нагрузкой?

допустим, скрипты у вас работают через mod_php.

тогда берем к-л чайлд апача и смотрим что-то типа:

strace -p <pid> -e trace=file

Много кто, включая mysql (весьма вероятно ваш случай).

Иногда nginx туда кидает большие запросы (это как настроите его каталоги) - подобные файлы

можно посмотреть например lsof (или просто ls -l /proc/<pid>/fd/).

-->8--$ sudo lsof -p `pidof mysqld`|grep tmp

mysqld 22680 mysql 6u REG 254,4 0 6145 /tmp/ibGX1aiF (deleted)

mysqld 22680 mysql 7u REG 254,4 119 6146 /tmp/ib62N8h4 (deleted)

mysqld 22680 mysql 8u REG 254,4 0 6147 /tmp/ibCHC6ht (deleted)

mysqld 22680 mysql 9u REG 254,4 0 6148 /tmp/ibAEpsiS (deleted)

mysqld 22680 mysql 13u REG 254,4 0 6149 /tmp/ib0BNbrh (deleted)

-->8--

Если есть предположение именно на скрипты вордпресса - что мешает

сделать strace их?

filex, а что если будет _реальная_ проблема? А прочитать самостоятельно

документацию (на русском!) к используему софту вы явно не

пытаетесь, это уже видно из топика.

Или апач у Вас тоже не работает?

PS:

Вы ж дырявую версию nginx ставите к тому же.

zexis:
1. В том что разные алгоритмы поиска с разными параметрами можно накладывать одновременно.

А что мешает сделать это на sh+awk/sed ?

zexis:

2. В том что можно реализовывать довольно сложные алгоритмы для анализа.

Ну, Perl тогда. (Хотя я в упор сложностей в Ваших алгоритмах не вижу).

zexis:

3. Исходный код программы на языке С сейчас занимает 2300 строк. Отладить такой объем кода не шелле не реально.

Может Вы просто не знакомы со скриптовыми языками, вот и все? Ну не windows

это :) Для потоковой обработки текстовых логов есть куча инструментов, awk замечательно

подойдет. Хочется еще быстрее - можно sed использовать.

zexis:

4. 10 000 строк лог файла программа анализирует за 1-2 секунды. У программы на шелле (реализующие такие же алгоритмы) на это ушло бы больше времени.

А как вы это узнали?

PS:

"Алгоритмы" Ваши уже обсосали со всех сторон в предыдущих топиках. Часть их реализуется

на уровне вебсервера (nginx limit* модули) - часть элементарной строчкой tail + awk.

Я не уверен, что с 1m (sic!) оно будет работать во всех браузерах. Ибо смысл

такого "кеширования" на стороне клиента?

Если меньше 10m нужно - ставьте просто expires off в локейшене /preview404.jpg.

"Временные картинки" реально уникальные?

Если нет и статику nginx раздает - можно как-то так:


location /preview/ {
root /somewhere/;
expires 1d;
error_page 404 =200 /preview404.jpg;
}
location = /preview404.jpg {
internal;
root /somewhereelse/;
expires 10m;
}

"Модификация" движка состоит в том, что он не создает

никакого файла до реальной генерации превью.

Всего: 4890