Сервер для Привета
-
- Уже с Приветом
- Posts: 13684
- Joined: 16 Jan 2001 10:01
Посмотрел я на лог и обнаружил что когда запросы замедляются - тормозит все, влючая статические странички и картинки.
То есть мы не можем быть уверены что тормозит именно база: MySQL занимает процессор просто потому что у него длинный жизненный цикл.
PHP и IIS рады бы заграбастать ресурсов, да им не дают...
То есть мы не можем быть уверены что тормозит именно база: MySQL занимает процессор просто потому что у него длинный жизненный цикл.
PHP и IIS рады бы заграбастать ресурсов, да им не дают...
-
- Уже с Приветом
- Posts: 13684
- Joined: 16 Jan 2001 10:01
Privet wrote:Palych, было бы интересно поставить тест IIS + ISAPI PHP. Стабльно такая конструкция не работает, но чисто теоретически знать было бы интересно. Это более коректное сравнение IIS c апачем.
А я как-то не вижу смысла... Все равно использовать ето нельзя...
Мне кажется интереснее сравнить IIS+PHP/CGI с Apache+PHP/SAPI, ибо апаче пока единственный вариант отказа от CGI... (PHP крайне не рекомендует использовать Apache+PHP/CGI)
Мы же хотим убедиться что Apache+PHP/SAPI не будет медленнее.
Кстати, где берут IIS?
-
- Уже с Приветом
- Posts: 10367
- Joined: 12 Apr 2001 09:01
- Location: Lithuania/UK
Palych wrote:Посмотрел я на лог и обнаружил что когда запросы замедляются - тормозит все, влючая статические странички и картинки.
То есть мы не можем быть уверены что тормозит именно база: MySQL занимает процессор просто потому что у него длинный жизненный цикл.
PHP и IIS рады бы заграбастать ресурсов, да им не дают...
Палыч, если Вы глянете в табличку моих тестов, то сможете увидеть, что там в третьей снизу строчке тестировался IIS. Так вот, в комментариях там написано:
- В тесте 2 загрузка процессора 100 процентов, иногда "залипает".
Такой же эффект наблюдался на Apache с CGI.
Что я имею в виду под "залипает". Тест у меня простой - запрос клиентом веб документа в цикле. Так вот, довольно часто, при работе с CGI клиент останавливается и стоит. Причем дело не в клиенте, так как в других конфигурациях он работает как часы. Дело также, думаю и не в CGI, просто при тестировании что Apache, что IIS с CGI загрузка процессора - 100%.
Также поскольку клиент сразу валит в консоль строчку о полученном ответе, хорошо видно, что сервер работает как-бы рывками, с паузами, причем паузы бывают до 3с. Может у Вас что-то похожее.
Причем, когда я испытывал ту же конфигурацию на сервере DELL PowerEdge 2400 (PIII 733 X 2), Там вроде не залипало, возможно просто надо было его с большего количества клиентов грузить.
На Линуксе, на том же железе, такого эффекта нет. Рывки правда видны, но не паузы, и они четко синхронизированы с чтением с винта, видимо, когда попадается документ, который еще не в кэше.
Дальше, все будет только хуже. Оптимист.
-
- Уже с Приветом
- Posts: 10367
- Joined: 12 Apr 2001 09:01
- Location: Lithuania/UK
Privet wrote:Palych, было бы интересно поставить тест IIS + ISAPI PHP. Стабльно такая конструкция не работает, но чисто теоретически знать было бы интересно. Это более коректное сравнение IIS c апачем.
Привет, а Вы смотрели на таблицу:
http://visaginas.is.lt/~evgeny/2/report.html
Там есть сравнение Apache с CGI и с модулем на Виндовс и на Линуксе, и также есть тест IIS/CGI.
Хотел я попробовать и IIS/isapi, но сразу он не сконфигурировался у меня, а было поздно. Возвращаться я смысла не визу, так как конфигурация не рекомендуемая, а результаты должны быть похожи на резултаты Apache 2.0.49/module.
Дальше, все будет только хуже. Оптимист.
-
- Уже с Приветом
- Posts: 13684
- Joined: 16 Jan 2001 10:01
f_evgeny wrote:Привет, а Вы смотрели на таблицу:
http://visaginas.is.lt/~evgeny/2/report.html
Там есть сравнение Apache с CGI и с модулем на Виндовс и на Линуксе, и также есть тест IIS/CGI.
Хотел я попробовать и IIS/isapi, но сразу он не сконфигурировался у меня, а было поздно. Возвращаться я смысла не визу, так как конфигурация не рекомендуемая, а результаты должны быть похожи на резултаты Apache 2.0.49/module.
f_evgeny, a mozhno Vas poprosit' prognat' eti testy iz JMeter, ili drugogo tula, chtoby eti 5000 zaprosov zapustit' skazhem v 20 threadov?
Esli budut voprosy po JMeter - pishite syuda ili v privat.
-
- Уже с Приветом
- Posts: 10367
- Joined: 12 Apr 2001 09:01
- Location: Lithuania/UK
Palych wrote:f_evgeny wrote:Привет, а Вы смотрели на таблицу:
http://visaginas.is.lt/~evgeny/2/report.html
Там есть сравнение Apache с CGI и с модулем на Виндовс и на Линуксе, и также есть тест IIS/CGI.
Хотел я попробовать и IIS/isapi, но сразу он не сконфигурировался у меня, а было поздно. Возвращаться я смысла не визу, так как конфигурация не рекомендуемая, а результаты должны быть похожи на резултаты Apache 2.0.49/module.
f_evgeny, a mozhno Vas poprosit' prognat' eti testy iz JMeter, ili drugogo tula, chtoby eti 5000 zaprosov zapustit' skazhem v 20 threadov?
Esli budut voprosy po JMeter - pishite syuda ili v privat.
Давайте ссылку, и если не слишком много возни, а то, я могу и на перле заварганить в процессы.
Дальше, все будет только хуже. Оптимист.
-
- Уже с Приветом
- Posts: 13684
- Joined: 16 Jan 2001 10:01
f_evgeny wrote:Давайте ссылку, и если не слишком много возни, а то, я могу и на перле заварганить в процессы.
http://jakarta.apache.org/jmeter/
Vrode tam vse prosto: raspakovat' i zapustit'. Razumeetsya JDK nuzhen.
Otkroete priattachenyj plan, popravite "Server Name" v "HTTP Request Defaults", a v "Get PHP" i "Get HTML" - "path"
Zatem zapustite i posmotrite v "Aggregate Report".
No mozhno prosto perl neskol'ko raz zapustit'...
(oops! zabyl priattachit')
-
- Уже с Приветом
- Posts: 12014
- Joined: 05 Apr 2000 09:01
- Location: Philadelphia, PA, USA
tengiz wrote:Процессор мы рассматриваем только как часть системы.
А на чём он затыкается? Логи перформанс монитора, если не просить записывать очень много счётчиков, практически бесплатная вещь на загруженной системе. А помощь с диагностикой могут оказать серьёзную.[/quote]
Какие именно счетчики интересуют?
Борис - логи, логи, логи!
-
- Уже с Приветом
- Posts: 4468
- Joined: 21 Sep 2000 09:01
- Location: Sammamish, WA
vovap wrote:Какие именно счетчики интересуют?
Для начала хотя бы вот эти:
1. Processor: CPU % - all
2. Physical Disk: % Disk Time, Current Disk Queue Length, Disk Transfers/sec, Disk Bytes/sec, Avg. Disk Bytes/Transfer
3. System - Processor Queue Length, Context Switches/sec
4. Memory - Pages/sec, Available MBytes
5. Process - Threads, Working Set, Virtual Bytes, CPU % - all
Группа (5) делается для каждого процесса - субд, веб сервер. Ну и если есть счётчики, определённые субд, веб сервером и его встраиваемыми модулями, их тоже включить.
Cheers
-
- Администратор
- Posts: 17200
- Joined: 03 Jan 1999 10:01
- Location: Redmond, WA
У меня есть заготовка счетчиков, там у меня почти всё, что tengiz написал, было. Я добавил недостающее и запустил на сутки. Правда, суббота не лучшее время для таких замеров, но посмотрим.
Процессоры мне купить сегодня не удалось. Заказал на вторник. Должны позвонить, когда получат. $199 вместе с пропеллером. Рядом в другом магазине предлагают за $260 без пропеллера.
Компьютер я сегодня почти полностью собрал. Осталось вставить процессоры и подключить диски. Там, собственно, и собирать-то нечего. Прикрутил вентиляторы, вставил память, неткарту (Com3) и видеокарту (какую-то тайтаниум, для сервера не важно) и соединил несколько проводов.
Процессоры мне купить сегодня не удалось. Заказал на вторник. Должны позвонить, когда получат. $199 вместе с пропеллером. Рядом в другом магазине предлагают за $260 без пропеллера.
Компьютер я сегодня почти полностью собрал. Осталось вставить процессоры и подключить диски. Там, собственно, и собирать-то нечего. Прикрутил вентиляторы, вставил память, неткарту (Com3) и видеокарту (какую-то тайтаниум, для сервера не важно) и соединил несколько проводов.
Привет.
-
- Уже с Приветом
- Posts: 10367
- Joined: 12 Apr 2001 09:01
- Location: Lithuania/UK
Palych wrote:f_evgeny, a mozhno Vas poprosit' prognat' eti testy iz JMeter, ili drugogo tula, chtoby eti 5000 zaprosov zapustit' skazhem v 20 threadov?
Esli budut voprosy po JMeter - pishite syuda ili v privat.
Палыч, стянул я JMeter, но к нему еще Java надо устанавливать... Гораздо быстрее на шелле сделать. Так что я прогнал тесты на шелле, в режиме 1-го, 5-ти и 20-ти параллельных процессов. Вот результаты:
Code: Select all
Win,Apache,HTML,5000
single - 166 сек, 40%, рывками
multy5 - 46 сек, 70%
multy20- 47 сек, 70%
Win,Apache,Module,PHP,5000
single - 89 сек, 60%, рывками
multy5 - 48 сек, 100%
multy20- 48 сек, 100%
Win,Apache,CGI,PHP,5000
single - ? сек, 100%, Залипает, Не смог закончить тест, судя по темпу д.б.560 сек
multy5 - 558 сек, 100%
multy20- 541 сек, 100%
Win,IIS,CGI,HTML,5000
single - 64 сек, 20%
multy5 - 43 сек, 30%
multy20- 50 сек, 30%
Win,IIS,CGI,PHP,5000
single - ? сек, 100%,Залипает, Не смог закончить тест, судя по темпу д.б.564 сек
multy5 - 150 сек, 100% Иногда один из процессов залипает
multy20- 100 сек, 100%, Иногда один из процессов залипает
Lin,Apache,HTML,5000
single - 84 сек, 10% - 20%
multy5 - 48 сек, 10% - 20%
multy20- 63 сек, 10% - 35%
Lin,Apache,CGI,PHP,5000
single - 246 сек, 80%
multy5 - 227 сек, 100%
multy20- 415 сек, 100%
Lin,Apache,Module,PHP,5000
single - 75 сек, 15% - 25%
multy5 - 43 сек, 40% - 50%
multy20- 48 сек, 40% - 50%
Обозначения в тексте:
Lin: Linux Debian "Woody", Kernel 2.2.20
Win: Windows 2000 Professional
Apache: Для Win - 2.0.49, для Lin - 1.3.26
IIS: 5
PHP: Для Win - 4.3.6, для Lin - 4.1.2
Module: PHP подключено как модуль
CGI: PHP подключено как CGI
single: тестовая программа работала как один процесс
multy5: работало 5 тестовых программ в параллель
multy20: работало 20 тестовых программ в параллель
5000: в тесте вне зависимости single или multy общее
количество обращений к серверу 5000
Секунды: время обработки 5000 тыс. запросов
Проценты: загрузка CPU
Last edited by f_evgeny on 24 Apr 2004 19:19, edited 1 time in total.
Дальше, все будет только хуже. Оптимист.
-
- Уже с Приветом
- Posts: 10367
- Joined: 12 Apr 2001 09:01
- Location: Lithuania/UK
На мой взгляд, глянув на тесты, вот что можно сделать в области софта. Причем это потребует минимальных усилий и делать и тестировать можно в параллель с работой существующего форума.
1. Не отключая IIS установить Apache 2.0.49 (последний)
2. Настроить Apache на какой нибудь другой (не 80-й) порт, например на 8080.
3. Подключить к Апачу PHP как модуль.
4. Сконфигурировать phpBB для работы с апаче
5. Протестировать.
6. Можно пробовать временно подключать систему на Apache вместо IIS на боевую нагрузку и смотреть как он себя ведет.
Все это очень просто, так как у Апача вся конфигурация на файлах - преключение вариантов дело секунд.
1. Не отключая IIS установить Apache 2.0.49 (последний)
2. Настроить Apache на какой нибудь другой (не 80-й) порт, например на 8080.
3. Подключить к Апачу PHP как модуль.
4. Сконфигурировать phpBB для работы с апаче
5. Протестировать.
6. Можно пробовать временно подключать систему на Apache вместо IIS на боевую нагрузку и смотреть как он себя ведет.
Все это очень просто, так как у Апача вся конфигурация на файлах - преключение вариантов дело секунд.
Дальше, все будет только хуже. Оптимист.
-
- Уже с Приветом
- Posts: 12014
- Joined: 05 Apr 2000 09:01
- Location: Philadelphia, PA, USA
f_evgeny wrote:Гораздо быстрее на шелле сделать. Так что я прогнал тесты на шелле, в режиме 1-го, 5-ти и 20-ти параллельных процессов.
Наверна я совсем идиот, но не понимаю, при чем тут число процессов. То есть попросту говоря каждый процесс ждал овета прежде чем послать следующий запрос? А 5 и 20 процессов таким образом посылали запросы более-менее односременно не дожидаясь ответа для запросов другого процесса?
Тогда чего оно при одном процеесе "залипает" а при несолькоих - нет?
-
- Уже с Приветом
- Posts: 13684
- Joined: 16 Jan 2001 10:01
Евгений, как Вы измеряли время выполнения в многопоточной версии? (не иметь Java на мышине - это не актуально! )
Я думаю что мы имеем достаточно свидетельств что применения Apache+PHP/SAPI вместо IIS+PHP/CGI позволит разгрузить процессор.
Только я думаю что апач надо ставить 1.3, ибо PHP Module для него надежней.
Мои тесты застряли на попытке поставить все это дело на Линукс. Тому кто придумал RPM надобно оторвать ноги по самые уши!
Главное - мне до сих пор не удалось заставить PHP работать быстрее чем MySQL...
А это было бы интересно... Попробую писать все запросы в логи, а потом использовать их в тестах...
Я думаю что мы имеем достаточно свидетельств что применения Apache+PHP/SAPI вместо IIS+PHP/CGI позволит разгрузить процессор.
Только я думаю что апач надо ставить 1.3, ибо PHP Module для него надежней.
Мои тесты застряли на попытке поставить все это дело на Линукс. Тому кто придумал RPM надобно оторвать ноги по самые уши!
Главное - мне до сих пор не удалось заставить PHP работать быстрее чем MySQL...
А это было бы интересно... Попробую писать все запросы в логи, а потом использовать их в тестах...
-
- Уже с Приветом
- Posts: 5669
- Joined: 13 Oct 2000 09:01
- Location: East Bay, CA
-
- Уже с Приветом
- Posts: 5669
- Joined: 13 Oct 2000 09:01
- Location: East Bay, CA
-
- Уже с Приветом
- Posts: 13684
- Joined: 16 Jan 2001 10:01
Connection pools in PHP called "persistent connections"
http://www.php.net/manual/en/ref.mysql.php
They need to be configured in php.ini and mysql_pconnect should be used instead of mysql_connect.
http://www.php.net/manual/en/ref.mysql.php
They need to be configured in php.ini and mysql_pconnect should be used instead of mysql_connect.
-
- Уже с Приветом
- Posts: 5669
- Joined: 13 Oct 2000 09:01
- Location: East Bay, CA
Palych wrote:Connection pools in PHP called "persistent connections"
http://www.php.net/manual/en/ref.mysql.php
They need to be configured in php.ini and mysql_pconnect should be used instead of mysql_connect.
Сабина
-
- Уже с Приветом
- Posts: 4468
- Joined: 21 Sep 2000 09:01
- Location: Sammamish, WA
Palych wrote:Я думаю что мы имеем достаточно свидетельств что применения Apache+PHP/SAPI вместо IIS+PHP/CGI позволит разгрузить процессор.
Очень любопытно - Apache/ISAPI vs. IIS/CGI. Сюрреализм какой-то. Может, я что-то прозевал? Это у PHP такая кривая реализация ISAPI фильтров для IIS? Кто-то специально, что ли, постарался?
Cheers
-
- Уже с Приветом
- Posts: 10367
- Joined: 12 Apr 2001 09:01
- Location: Lithuania/UK
tengiz wrote:Palych wrote:Я думаю что мы имеем достаточно свидетельств что применения Apache+PHP/SAPI вместо IIS+PHP/CGI позволит разгрузить процессор.
Очень любопытно - Apache/ISAPI vs. IIS/CGI. Сюрреализм какой-то. Может, я что-то прозевал? Это у PHP такая кривая реализация ISAPI фильтров для IIS? Кто-то специально, что ли, постарался?
Тут по-моему описка, надо Apache/module vs. IIS/CGI.
Насчет надежности ISAPI модуля, из install.txt:
PHP 4 for Windows comes in two flavours - a CGI executable (php.exe),
and several SAPI modules (for exapmle php4isapi.dll). The latter form
is new to PHP 4, and provides significantly improved performance and
some new functionality. However, please note that the SAPI modules
are *NOT* yet considered to be production quality.
In particular, with the ISAPI module, you are likely to encounter serious
reliability problems especially on platforms older than W2K - you may
witness a lot of server 500 errors and suffer from other server modules
such as ASP also failing. You have been warned!
The reason for this is that the PHP SAPI modules are using the
thread-safe version of the PHP code, which is new to PHP 4, and has
not yet been tested and pounded enough to be considered completely
stable, and there are actually a few known bugs. On the other hand,
some people have reported very good results with the SAPI modules,
and there a few reports of problems with the Apache module version.
In short - your mileage may vary; If you need
absolute stability, trade the performance of the SAPI modules
with the stability of the CGI executable.
И потом, зачем использовать IIS, если Apache работает надежнее, легче настраивается, и не имеет такой ужасной репутации в области безопасности, и полностью кроссплатформенный?
Дальше, все будет только хуже. Оптимист.
-
- Уже с Приветом
- Posts: 10367
- Joined: 12 Apr 2001 09:01
- Location: Lithuania/UK
Palych wrote:Евгений, как Вы измеряли время выполнения в многопоточной версии? (не иметь Java на мышине - это не актуально! )
Я думаю что мы имеем достаточно свидетельств что применения Apache+PHP/SAPI вместо IIS+PHP/CGI позволит разгрузить процессор.
Только я думаю что апач надо ставить 1.3, ибо PHP Module для него надежней.
Мои тесты застряли на попытке поставить все это дело на Линукс. Тому кто придумал RPM надобно оторвать ноги по самые уши!
Главное - мне до сих пор не удалось заставить PHP работать быстрее чем MySQL...
А это было бы интересно... Попробую писать все запросы в логи, а потом использовать их в тестах...
1. "У нас" это делается примерно так:
Code: Select all
#! /bin/sh
######################
#
# Запускает 5 процессов test1.pl с перенаправлением
# в файлы и ждет их завершения
#
#####################
PROCESSES="1 2 3 4 5"
for i in $PROCESSES
do
echo "Start Process N $i"
./test_01_apache.pl > test${i}.log &
done
wait
2. На Линуксе - да, 1.3 пашет как трактор. Никогда не слышал никаких нареканий. На виндовсе, возможно имеет смысл попробовать ветку 2, у меня вроде она работала стабильнее.
3. Насчет Линукса, к сожалению не пользуюсь RPM, так как работаю на Debiane, на нем ни о чем думать не надо, ставишь галочку напртив Apache, PHP, PHP-CGI, APT из ставит, правиль конфиги - и вперед.
Дальше, все будет только хуже. Оптимист.
-
- Уже с Приветом
- Posts: 10367
- Joined: 12 Apr 2001 09:01
- Location: Lithuania/UK
Sabina wrote:Palych wrote:Только я думаю что апач надо ставить 1.3, ибо PHP Module для него надежней.
Палыч, ну где же вы раньше были ?!!!
Я тут на работе три дня с этим делом (PHP/Apache2) боролась. Уже что только не делала буквально на стенку лезла. Потом поменяла на 1.3 и все забегало как по маслу.
Сабина
А в чем были проблемы? Как выражались? Какая платформа?
Дальше, все будет только хуже. Оптимист.
-
- Уже с Приветом
- Posts: 10367
- Joined: 12 Apr 2001 09:01
- Location: Lithuania/UK
-
- Уже с Приветом
- Posts: 10367
- Joined: 12 Apr 2001 09:01
- Location: Lithuania/UK
vovap wrote:f_evgeny wrote:Гораздо быстрее на шелле сделать. Так что я прогнал тесты на шелле, в режиме 1-го, 5-ти и 20-ти параллельных процессов.
Наверна я совсем идиот, но не понимаю, при чем тут число процессов. То есть попросту говоря каждый процесс ждал овета прежде чем послать следующий запрос? А 5 и 20 процессов таким образом посылали запросы более-менее односременно не дожидаясь ответа для запросов другого процесса?
Тогда чего оно при одном процеесе "залипает" а при несолькоих - нет?
- Ну, лично для меня достаточно хорошо видна разница в производительности и на одном процессе-клиенте.
- Но по просьбам трудящихся был произведен и тест с параллельной работой нескольких процессов, что вообще-то говоря правильно, так как работа может существенно отличаться и работать сервер будет несколько по другому. Не скажу про IIS, но для Апача - точно.
- "Залипает" и при нескольких процессах, один из них.
Дальше, все будет только хуже. Оптимист.
-
- Уже с Приветом
- Posts: 4468
- Joined: 21 Sep 2000 09:01
- Location: Sammamish, WA
f_evgeny wrote:зачем использовать IIS, если Apache работает надежнее, легче настраивается, и не имеет такой ужасной репутации в области безопасности, и полностью кроссплатформенный?
Я не специалист по IIS/Apache, я только знаю, что ISAPI - это родной API IIS, поэтому мне и было странно. Про сравнение репутаций и прочее - евангелистам веры мало, не обессудьте.
Cheers