Сервер для Привета

Palych
Уже с Приветом
Posts: 13684
Joined: 16 Jan 2001 10:01

Post by Palych »

Посмотрел я на лог и обнаружил что когда запросы замедляются - тормозит все, влючая статические странички и картинки.
То есть мы не можем быть уверены что тормозит именно база: MySQL занимает процессор просто потому что у него длинный жизненный цикл.
PHP и IIS рады бы заграбастать ресурсов, да им не дают...
Palych
Уже с Приветом
Posts: 13684
Joined: 16 Jan 2001 10:01

Post by Palych »

Privet wrote:Palych, было бы интересно поставить тест IIS + ISAPI PHP. Стабльно такая конструкция не работает, но чисто теоретически знать было бы интересно. Это более коректное сравнение IIS c апачем.

А я как-то не вижу смысла... Все равно использовать ето нельзя...
Мне кажется интереснее сравнить IIS+PHP/CGI с Apache+PHP/SAPI, ибо апаче пока единственный вариант отказа от CGI... (PHP крайне не рекомендует использовать Apache+PHP/CGI)
Мы же хотим убедиться что Apache+PHP/SAPI не будет медленнее.

Кстати, где берут IIS?
User avatar
f_evgeny
Уже с Приветом
Posts: 10367
Joined: 12 Apr 2001 09:01
Location: Lithuania/UK

Post by f_evgeny »

Palych wrote:Посмотрел я на лог и обнаружил что когда запросы замедляются - тормозит все, влючая статические странички и картинки.
То есть мы не можем быть уверены что тормозит именно база: MySQL занимает процессор просто потому что у него длинный жизненный цикл.
PHP и IIS рады бы заграбастать ресурсов, да им не дают...

Палыч, если Вы глянете в табличку моих тестов, то сможете увидеть, что там в третьей снизу строчке тестировался IIS. Так вот, в комментариях там написано:
- В тесте 2 загрузка процессора 100 процентов, иногда "залипает".
Такой же эффект наблюдался на Apache с CGI.
Что я имею в виду под "залипает". Тест у меня простой - запрос клиентом веб документа в цикле. Так вот, довольно часто, при работе с CGI клиент останавливается и стоит. Причем дело не в клиенте, так как в других конфигурациях он работает как часы. Дело также, думаю и не в CGI, просто при тестировании что Apache, что IIS с CGI загрузка процессора - 100%.
Также поскольку клиент сразу валит в консоль строчку о полученном ответе, хорошо видно, что сервер работает как-бы рывками, с паузами, причем паузы бывают до 3с. Может у Вас что-то похожее.
Причем, когда я испытывал ту же конфигурацию на сервере DELL PowerEdge 2400 (PIII 733 X 2), Там вроде не залипало, возможно просто надо было его с большего количества клиентов грузить.
На Линуксе, на том же железе, такого эффекта нет. Рывки правда видны, но не паузы, и они четко синхронизированы с чтением с винта, видимо, когда попадается документ, который еще не в кэше.
Дальше, все будет только хуже. Оптимист.
User avatar
f_evgeny
Уже с Приветом
Posts: 10367
Joined: 12 Apr 2001 09:01
Location: Lithuania/UK

Post by f_evgeny »

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.
Дальше, все будет только хуже. Оптимист.
Palych
Уже с Приветом
Posts: 13684
Joined: 16 Jan 2001 10:01

Post by Palych »

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.
User avatar
f_evgeny
Уже с Приветом
Posts: 10367
Joined: 12 Apr 2001 09:01
Location: Lithuania/UK

Post by f_evgeny »

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.

Давайте ссылку, и если не слишком много возни, а то, я могу и на перле заварганить в процессы.
Дальше, все будет только хуже. Оптимист.
Palych
Уже с Приветом
Posts: 13684
Joined: 16 Jan 2001 10:01

Post by Palych »

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')
vovap
Уже с Приветом
Posts: 12014
Joined: 05 Apr 2000 09:01
Location: Philadelphia, PA, USA

Post by vovap »

tengiz wrote:Процессор мы рассматриваем только как часть системы.

А на чём он затыкается? Логи перформанс монитора, если не просить записывать очень много счётчиков, практически бесплатная вещь на загруженной системе. А помощь с диагностикой могут оказать серьёзную.[/quote]
Какие именно счетчики интересуют?

Борис - логи, логи, логи! :)
User avatar
tengiz
Уже с Приветом
Posts: 4468
Joined: 21 Sep 2000 09:01
Location: Sammamish, WA

Post by tengiz »

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
User avatar
Privet
Администратор
Posts: 17200
Joined: 03 Jan 1999 10:01
Location: Redmond, WA

Post by Privet »

У меня есть заготовка счетчиков, там у меня почти всё, что tengiz написал, было. Я добавил недостающее и запустил на сутки. Правда, суббота не лучшее время для таких замеров, но посмотрим.

Процессоры мне купить сегодня не удалось. Заказал на вторник. Должны позвонить, когда получат. $199 вместе с пропеллером. Рядом в другом магазине предлагают за $260 без пропеллера.

Компьютер я сегодня почти полностью собрал. Осталось вставить процессоры и подключить диски. Там, собственно, и собирать-то нечего. Прикрутил вентиляторы, вставил память, неткарту (Com3) и видеокарту (какую-то тайтаниум, для сервера не важно) и соединил несколько проводов.
Привет.
User avatar
f_evgeny
Уже с Приветом
Posts: 10367
Joined: 12 Apr 2001 09:01
Location: Lithuania/UK

Post by f_evgeny »

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.
Дальше, все будет только хуже. Оптимист.
User avatar
f_evgeny
Уже с Приветом
Posts: 10367
Joined: 12 Apr 2001 09:01
Location: Lithuania/UK

Post by f_evgeny »

На мой взгляд, глянув на тесты, вот что можно сделать в области софта. Причем это потребует минимальных усилий и делать и тестировать можно в параллель с работой существующего форума.
1. Не отключая IIS установить Apache 2.0.49 (последний)
2. Настроить Apache на какой нибудь другой (не 80-й) порт, например на 8080.
3. Подключить к Апачу PHP как модуль.
4. Сконфигурировать phpBB для работы с апаче
5. Протестировать.
6. Можно пробовать временно подключать систему на Apache вместо IIS на боевую нагрузку и смотреть как он себя ведет.

Все это очень просто, так как у Апача вся конфигурация на файлах - преключение вариантов дело секунд.
Дальше, все будет только хуже. Оптимист.
vovap
Уже с Приветом
Posts: 12014
Joined: 05 Apr 2000 09:01
Location: Philadelphia, PA, USA

Post by vovap »

f_evgeny wrote:Гораздо быстрее на шелле сделать. Так что я прогнал тесты на шелле, в режиме 1-го, 5-ти и 20-ти параллельных процессов.

Наверна я совсем идиот, но не понимаю, при чем тут число процессов. То есть попросту говоря каждый процесс ждал овета прежде чем послать следующий запрос? А 5 и 20 процессов таким образом посылали запросы более-менее односременно не дожидаясь ответа для запросов другого процесса?
Тогда чего оно при одном процеесе "залипает" а при несолькоих - нет?
Palych
Уже с Приветом
Posts: 13684
Joined: 16 Jan 2001 10:01

Post by Palych »

Евгений, как Вы измеряли время выполнения в многопоточной версии? (не иметь Java на мышине - это не актуально! 8) :wink: )
Я думаю что мы имеем достаточно свидетельств что применения Apache+PHP/SAPI вместо IIS+PHP/CGI позволит разгрузить процессор.
Только я думаю что апач надо ставить 1.3, ибо PHP Module для него надежней.

Мои тесты застряли на попытке поставить все это дело на Линукс. Тому кто придумал RPM надобно оторвать ноги по самые уши! :х

Главное - мне до сих пор не удалось заставить PHP работать быстрее чем MySQL...
А это было бы интересно... Попробую писать все запросы в логи, а потом использовать их в тестах...
User avatar
Sabina
Уже с Приветом
Posts: 5669
Joined: 13 Oct 2000 09:01
Location: East Bay, CA

Post by Sabina »

Palych wrote:Только я думаю что апач надо ставить 1.3, ибо PHP Module для него надежней.


Палыч, ну где же вы раньше были ?!!! :)

Я тут на работе три дня с этим делом (PHP/Apache2) боролась. Уже что только не делала буквально на стенку лезла. Потом поменяла на 1.3 и все забегало как по маслу.

Сабина
User avatar
Sabina
Уже с Приветом
Posts: 5669
Joined: 13 Oct 2000 09:01
Location: East Bay, CA

Post by Sabina »

Palych wrote:Главное - мне до сих пор не удалось заставить PHP ..


Кстати возвращаясь к теме о конекшен пулах... Я так понимаю в PHP-mySQL ничего такого нет. А там как можно оптимизировать запросы в базу по времени?

Спасибо,
Сабина
Palych
Уже с Приветом
Posts: 13684
Joined: 16 Jan 2001 10:01

Post by Palych »

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.
User avatar
Sabina
Уже с Приветом
Posts: 5669
Joined: 13 Oct 2000 09:01
Location: East Bay, CA

Post by Sabina »

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.


:gen1: :gen1: :gen1:

Сабина
User avatar
tengiz
Уже с Приветом
Posts: 4468
Joined: 21 Sep 2000 09:01
Location: Sammamish, WA

Post by tengiz »

Palych wrote:Я думаю что мы имеем достаточно свидетельств что применения Apache+PHP/SAPI вместо IIS+PHP/CGI позволит разгрузить процессор.

Очень любопытно - Apache/ISAPI vs. IIS/CGI. Сюрреализм какой-то. Может, я что-то прозевал? Это у PHP такая кривая реализация ISAPI фильтров для IIS? Кто-то специально, что ли, постарался?
Cheers
User avatar
f_evgeny
Уже с Приветом
Posts: 10367
Joined: 12 Apr 2001 09:01
Location: Lithuania/UK

Post by f_evgeny »

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 работает надежнее, легче настраивается, и не имеет такой ужасной репутации в области безопасности, и полностью кроссплатформенный?
Дальше, все будет только хуже. Оптимист.
User avatar
f_evgeny
Уже с Приветом
Posts: 10367
Joined: 12 Apr 2001 09:01
Location: Lithuania/UK

Post by f_evgeny »

Palych wrote:Евгений, как Вы измеряли время выполнения в многопоточной версии? (не иметь Java на мышине - это не актуально! 8) :wink: )
Я думаю что мы имеем достаточно свидетельств что применения 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 из ставит, правиль конфиги - и вперед.

Дальше, все будет только хуже. Оптимист.
User avatar
f_evgeny
Уже с Приветом
Posts: 10367
Joined: 12 Apr 2001 09:01
Location: Lithuania/UK

Post by f_evgeny »

Sabina wrote:
Palych wrote:Только я думаю что апач надо ставить 1.3, ибо PHP Module для него надежней.


Палыч, ну где же вы раньше были ?!!! :)

Я тут на работе три дня с этим делом (PHP/Apache2) боролась. Уже что только не делала буквально на стенку лезла. Потом поменяла на 1.3 и все забегало как по маслу.

Сабина

А в чем были проблемы? Как выражались? Какая платформа?
Дальше, все будет только хуже. Оптимист.
User avatar
f_evgeny
Уже с Приветом
Posts: 10367
Joined: 12 Apr 2001 09:01
Location: Lithuania/UK

Post by f_evgeny »

Palych wrote:...не иметь Java на мышине - это не актуально! 8) :wink: ...

На кой мне Java, когда у меня есть Shell, Perl, TCL, C, PHP, GCC, G++ и еще много всего. Зачем еще Java мозги забивать? Какие задачи я не могу решить без нее?
Дальше, все будет только хуже. Оптимист.
User avatar
f_evgeny
Уже с Приветом
Posts: 10367
Joined: 12 Apr 2001 09:01
Location: Lithuania/UK

Post by f_evgeny »

vovap wrote:
f_evgeny wrote:Гораздо быстрее на шелле сделать. Так что я прогнал тесты на шелле, в режиме 1-го, 5-ти и 20-ти параллельных процессов.

Наверна я совсем идиот, но не понимаю, при чем тут число процессов. То есть попросту говоря каждый процесс ждал овета прежде чем послать следующий запрос? А 5 и 20 процессов таким образом посылали запросы более-менее односременно не дожидаясь ответа для запросов другого процесса?
Тогда чего оно при одном процеесе "залипает" а при несолькоих - нет?

- Ну, лично для меня достаточно хорошо видна разница в производительности и на одном процессе-клиенте.
- Но по просьбам трудящихся был произведен и тест с параллельной работой нескольких процессов, что вообще-то говоря правильно, так как работа может существенно отличаться и работать сервер будет несколько по другому. Не скажу про IIS, но для Апача - точно.
- "Залипает" и при нескольких процессах, один из них.
Дальше, все будет только хуже. Оптимист.
User avatar
tengiz
Уже с Приветом
Posts: 4468
Joined: 21 Sep 2000 09:01
Location: Sammamish, WA

Post by tengiz »

f_evgeny wrote:зачем использовать IIS, если Apache работает надежнее, легче настраивается, и не имеет такой ужасной репутации в области безопасности, и полностью кроссплатформенный?

Я не специалист по IIS/Apache, я только знаю, что ISAPI - это родной API IIS, поэтому мне и было странно. Про сравнение репутаций и прочее - евангелистам веры мало, не обессудьте.
Cheers

Return to “Вопросы и новости IT”