Сервер для Привета
-
- Уже с Приветом
- Posts: 13684
- Joined: 16 Jan 2001 10:01
Отказ от CGI по определению должен драмматически снизить нагрузку на память и операции ввода-вывода. (причем ето будет заметно только для больших нагрузок).
Однако впиндюривание PHP непосредственно в адресное пространство сервера предявляет жесткие требования к надежности реализации.
Windows/IIS не является родной средой ни для PHP ни для MySQL. Они там менее распространены, менее тщательно оттестированы, стало быть потенциально более глюкавы.
Так что я бы отказался или от PHP/MySQL или от Windows. Не потому что ето плохая система, а потому что для данной задачи та же FreeBSD обьективно должна быть лучше.
Однако впиндюривание PHP непосредственно в адресное пространство сервера предявляет жесткие требования к надежности реализации.
Windows/IIS не является родной средой ни для PHP ни для MySQL. Они там менее распространены, менее тщательно оттестированы, стало быть потенциально более глюкавы.
Так что я бы отказался или от PHP/MySQL или от Windows. Не потому что ето плохая система, а потому что для данной задачи та же FreeBSD обьективно должна быть лучше.
-
- Уже с Приветом
- Posts: 12072
- Joined: 17 Nov 2002 03:41
- Location: английская колония
Privet wrote:Проблема только в производительности. Вопрос стоит ребром. Установка FreeBSD позволит работать на одном сервере? Т.е. можно будет избежать относительно дорогостоящего апгрейда железа? Какой процент прироста производительности даст другая система? Может кто-нибудь найти сравнительные данные для связки PHP+MySQL для разных систем?
Я дня через 2 смогу принести семплы какая конфигурация FreeBSD какую нагрузку держит - примеры нагрузки при разном количестве открытых коннекшеннов.
Примерно помню, что при ~990 открытых коннекшн на 1 Ggz FreeBSD 4-ке процессор был 50% и система тормозила.
Да, to Strannik:
Нет в Виндовс УНИХ домаин сокетов. Уже спорили 2 года назад. И не думаю, что появились. Другие способы, более заковыристые, но етих сокетов нет.
Верить нельзя никому - даже себе. Мне - можно!
-
- Уже с Приветом
- Posts: 12014
- Joined: 05 Apr 2000 09:01
- Location: Philadelphia, PA, USA
Palych wrote:Отказ от CGI по определению должен драмматически снизить нагрузку на память и операции ввода-вывода. (причем ето будет заметно только для больших нагрузок).
Давным давно, когда форум стоял еще на Perl и плоских файлах говорилось в точности то же про процессы. Пока наконец один хороший человек (вот были люди в наше время, богатыри - не вы ) не сделал тестирование на машине с двойной загрузкой. В результате оказалось, что на Windows работает даже чуть быстрее. Разговоры закончились (наиболее упорные продолжали ворчать про mod Perl)
Это не значит, конечно, что то же верно для PhP и MySql. Но без тестирования все эти соображения выглядят тускло.
Так что наша благодарность не будет иметь границ в пределах разумного, если кто такое тестирование сможет организовать.
Больше чем разговоры о процесах меня заинтересовала разумная идея о коннект полинге. У меня все время впечатление, что с числом коннектов там что-то не так.
-
- Уже с Приветом
- Posts: 13684
- Joined: 16 Jan 2001 10:01
Давным-давно, когда мы выкатывали первую версию нашего приложения, специальная команда провела тест нашего приложения под "более чем трехкратной нагрузкой". После релиза приложение с большим трудом держало половину стандартной нагрузки... Это я к тому, что тестирование (при всей безусловной полезности) - не панацея...
Я просто пытаюсь делать выводы:
- Какой смысл в connection poolingе, если весь процесс сливается в унитаз после каждого запроса. (Если только в современных серверах не изобрели какой-нибудь трюк для CGI)?
- Борис говорил что "модульный" PHP нестабилен под PHP/IIS.
Стало быть надо что-то из этой цепочки поменять....
Кстати, все же интересно - какие процессы забивают CPU?
Может MySQL и ни при чем, и мы зря копья ломаем?
Может попробовать запустить тот же форум под Apache/PHP на той же машине? Уже пробовали?
Я просто пытаюсь делать выводы:
- Какой смысл в connection poolingе, если весь процесс сливается в унитаз после каждого запроса. (Если только в современных серверах не изобрели какой-нибудь трюк для CGI)?
- Борис говорил что "модульный" PHP нестабилен под PHP/IIS.
Стало быть надо что-то из этой цепочки поменять....
Кстати, все же интересно - какие процессы забивают CPU?
Может MySQL и ни при чем, и мы зря копья ломаем?
Может попробовать запустить тот же форум под Apache/PHP на той же машине? Уже пробовали?
-
- Уже с Приветом
- Posts: 12014
- Joined: 05 Apr 2000 09:01
- Location: Philadelphia, PA, USA
Palych wrote:Кстати, все же интересно - какие процессы забивают CPU?
Может MySQL и ни при чем, и мы зря копья ломаем?
Еще при IDE винчестере в такой ситуации MySQL ел 40-60% процессора.
Может попробовать запустить тот же форум под Apache/PHP на той же машине? Уже пробовали?
Машина 1 (одна) как пробовать? Надо выключить форум, снести Win, ставить чего там из Unix, Apache, PhP, MySQL, закачать базу. Что нибудь окажется криво, надо будет разбираться. Все это время форум будет даун.В случае неудачи потом все взад. Немножко сложно для одной машины и одного человека. И сотнях ежедневных пользоателей.
-
- Уже с Приветом
- Posts: 12014
- Joined: 05 Apr 2000 09:01
- Location: Philadelphia, PA, USA
-
- Уже с Приветом
- Posts: 6094
- Joined: 08 Sep 2001 09:01
- Location: Canada -> NJ -> Canada -> ... MD/DC ... IL
Privet wrote:Волчара wrote:Privet wrote:Я был бы рад получить сравнительный даннын MS и UNIX в ситуации, примерно соответствующей нашей. Пока я дамаю, что выигрыша не будет. Если найдём выигрыш - поставлю что угоддно.
Кстати, насчет MS лицензий проблем нет
Новая машина предполагается для ДБ-сервера.
какой анализ? исходя из чего? Проводить анализ и доказывать, что ИИС в разЫ нестабильнее апача я не буду, извините. И что майсиквел должен жить на юнихе, под который был изначальна заточен, тоже не буду.
Я ж говорю - хозяйская воля
Извините, но это совершенно непрофессиональный подход. Даже если я сейчас и ищу другую платформу, а я её всегда ищу, Вы в пользу Unix не сказали ничего полезного. Именно такие совершенно необоснованные мнения заставляют с большой осторожностью смотреть на эту платформу. Если Вы не приводите хоть каких-то обоснований, то Ваши слова воспринимаются только как надувания щек. Даже на этом не совсм техническом форуме подобные заявления выглядят нак отрыжка holy wars.
W2K ушел далеко от Win 3.11 с кооперативной многозадачностью.
Нелюбимые Вами "окошки" в первую очередь обеспечивают достоверность и непротиворечивость параметров системы, если, конечно, эти окошки сделаны правильно, а не ради окошек. Это я Вам говорю как профессионал.
как профессионал - профессионалу. Данные по сравнительному быстродействию апача и ииса есть в гугле, мне искать лениво. Почему апач я излагал ранее. Почему юних - потому что апач и майсиквел. А надул я щеки или нет - эт вопрос десятый. Я работал админом и на том, и на другом, и еще на третьем, так что мой личный опыт мне позволяет раздувать щеки достаточно округло.
Хотелось бы также узнать, какой именно процесс грузит цпу на 100%... чтоб уж щеки совсем качественно надуть и пальцы растопырить. Вы ведь жалуетесь на загрузку уже долго, так какой же процесс грузит? Может это вообще не процесс, а подсистема ввода-вывода.
Отрубить многие процессы в вин просто не представляется возможным. Например rpc, AFAIR, включен всегда. С точки зрения секьюрити - это нонсенс
Well, show me the way To the next whisky bar. Oh, don't ask why
-
- Уже с Приветом
- Posts: 569
- Joined: 14 Dec 2003 04:06
- Location: Львов->Киев->Торонто
Могу дать для полигона свою домашнюю машину, у меня FreeBSD-5-Current, кабельный модем.
Борис, какой средний исходящий трафик, я 50К смогу выжать.
AMD-2500, 1Gb ram.
Нужно будет написать скрипты генерации нагрузки и запустить с несольких клиентов, это позволит оценить производительность не остнавливая работы форума
Потому что иного пути кроме как постановка эксперимента я не вижу.
Борис, какой средний исходящий трафик, я 50К смогу выжать.
AMD-2500, 1Gb ram.
Нужно будет написать скрипты генерации нагрузки и запустить с несольких клиентов, это позволит оценить производительность не остнавливая работы форума
Потому что иного пути кроме как постановка эксперимента я не вижу.
Никакой разрухи нет. (с) Проф. Преображенский.
-
- Уже с Приветом
- Posts: 13684
- Joined: 16 Jan 2001 10:01
vovap wrote:Может попробовать запустить тот же форум под Apache/PHP на той же машине? Уже пробовали?
Машина 1 (одна) как пробовать? Надо выключить форум, снести Win, ставить чего там из Unix, Apache, PhP, MySQL, закачать базу. Что нибудь окажется криво, надо будет разбираться. Все это время форум будет даун.В случае неудачи потом все взад. Немножко сложно для одной машины и одного человека. И сотнях ежедневных пользоателей.
Не-а. Взять готовый Apache под винды, собранный с PHP в виде модуля.
Поставить на ту же машину.
Настроить на альтернативный порт (8080)
Поставить (как я понимаю - скопировать) код форума, натравить его на ту же базу, настроить persistent connections.
Убедиться что у целом - работает.
Попробовать остановить IIS и запустить Apache на боевом порту.
Ежели что - откат займет не более минуты.
Сегодня/завтра поковыряюсь насчет дистрибутивов Apache/PHP в одном флаконе...
-
- Администратор
- Posts: 17200
- Joined: 03 Jan 1999 10:01
- Location: Redmond, WA
Волчара wrote:...
как профессионал - профессионалу. Данные по сравнительному быстродействию апача и ииса есть в гугле, мне искать лениво. Почему апач я излагал ранее. Почему юних - потому что апач и майсиквел. ...
Да мы тут не один год гуглим эти результаты. Что-то пока ничего толкового не нашли.
vovap как раз напомнил топик, где тоже некоторые участники рассуждали о "родственных связях" perl и unix. Причём абсолютно по той же логике. Потом кто-то взял и поставил эксперимент. Perl на Windows оказался быстрее. Я не удивлюсь, если с PHP будет та же история. Работает-то в принципе абсолютно тот-же код, за исключением некоторых ifdef блоков. Причин для разницы в производительности нет почти никаких.
На работе мы гоняем приложения как на win, так и на linux. О какой-то разности в скорости никто и не заикается.
Поставить эксперимент можно. Пока цифр не будет, все "логические" доводы не стоят ломаного гроша.
На перегрузке процессор и диски загружает MySQL.
Привет.
-
- Уже с Приветом
- Posts: 4468
- Joined: 21 Sep 2000 09:01
- Location: Sammamish, WA
Да, даже самые большие профессионалы не обходятся без заклинаний и необъяснимых науке загогулин... сцепифика профессии, видимо. Сложное, видимо, это явление дикой природы - софтвер. Только с виду рукотворный, на самом деле, аднака, по своей унутренней логике живёт, - сказал опытный чукча-охотник, попыхивая трубкой... Софтвер - его чувствовать надо, как тюленя, - которого ещё в правильный момент подстрелить надо, иначе мясо будет невкусным... пульки, опять же, лить нужно при полной луне полярным летом, иначе мать-тюлениха за неуважение мор нашлёт на оленей...
P.S. Privet - если решитесь на SQL Server - могу посодействовать, только нужно понять, что точно нужно будет делать чтобы была реальная помощь. А то глубокоуважаемые жрецы таинственного и магического UNIX слишком уж активно лоббируют свои космически-загадочно притягивающиеся друг к другу програмули
P.S. Privet - если решитесь на SQL Server - могу посодействовать, только нужно понять, что точно нужно будет делать чтобы была реальная помощь. А то глубокоуважаемые жрецы таинственного и магического UNIX слишком уж активно лоббируют свои космически-загадочно притягивающиеся друг к другу програмули
Cheers
-
- Уже с Приветом
- Posts: 1222
- Joined: 02 Jan 2002 10:01
- Location: Bellevue, WA
-
- Уже с Приветом
- Posts: 12072
- Joined: 17 Nov 2002 03:41
- Location: английская колония
Волчара wrote:Отрубить многие процессы в вин просто не представляется возможным. Например rpc, AFAIR, включен всегда. С точки зрения секьюрити - это нонсенс
Кроме того, нетбиосы всякие, актив директории, 135/137 порты, которые находятся в постоянном режиме отбивки от вайрусов.zagoguliny ob'jasnimy
P.S. Завтра семплы принесу. По моему там на каком-то домейне форум стоит с 17500 участников...
Верить нельзя никому - даже себе. Мне - можно!
-
- Уже с Приветом
- Posts: 12014
- Joined: 05 Apr 2000 09:01
- Location: Philadelphia, PA, USA
-
- Уже с Приветом
- Posts: 12014
- Joined: 05 Apr 2000 09:01
- Location: Philadelphia, PA, USA
Palych wrote:Не-а. Взять готовый Apache под винды, собранный с PHP в виде модуля.
Поставить на ту же машину.
Настроить на альтернативный порт (8080)
Поставить (как я понимаю - скопировать) код форума, натравить его на ту же базу, настроить persistent connections.
Убедиться что у целом - работает.
Попробовать остановить IIS и запустить Apache на боевом порту.
Ежели что - откат займет не более минуты.
Сегодня/завтра поковыряюсь насчет дистрибутивов Apache/PHP в одном флаконе...
Можно и так - то есть попробовать только Apache. Любая инициатива приветствуется.
-
- Уже с Приветом
- Posts: 569
- Joined: 14 Dec 2003 04:06
- Location: Львов->Киев->Торонто
-
- Уже с Приветом
- Posts: 12072
- Joined: 17 Nov 2002 03:41
- Location: английская колония
Strannik223 wrote:Еще вариант,
Борис а может вы просто выложите где нибудь для скачивания базу Привета со scrambled личной информацией а желающие попробуют на своих любимых конфигурациях и доложат о результатах.
Даже не обязательно базу. Что-нибудь рандом генерейтед стой же структурой.
Верить нельзя никому - даже себе. Мне - можно!
-
- Уже с Приветом
- Posts: 13684
- Joined: 16 Jan 2001 10:01
vovap wrote:Можно и так - то есть попробовать только Apache. Любая инициатива приветствуется.
Here is what they say about it:
PHP 4.3.5 Release wrote: Installing PHP for Apache as module
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Now that version 4.1 introduces a safer sapi module, we recommend
that you configure PHP as a module in Apache.
To accomplish this, you have to load the php4apache.dll in your
Apache httpd.conf.
Pohozhe dlya Apache on gorazdo nadezhnee chem dlya ISAPI.
Sejchas poprobuyu postavit' na rabote (PII-450/Win2K)...
-
- Уже с Приветом
- Posts: 6094
- Joined: 08 Sep 2001 09:01
- Location: Canada -> NJ -> Canada -> ... MD/DC ... IL
Privet wrote:Волчара wrote:...
как профессионал - профессионалу. Данные по сравнительному быстродействию апача и ииса есть в гугле, мне искать лениво. Почему апач я излагал ранее. Почему юних - потому что апач и майсиквел. ...
Да мы тут не один год гуглим эти результаты. Что-то пока ничего толкового не нашли.
vovap как раз напомнил топик, где тоже некоторые участники рассуждали о "родственных связях" perl и unix. Причём абсолютно по той же логике. Потом кто-то взял и поставил эксперимент. Perl на Windows оказался быстрее. Я не удивлюсь, если с PHP будет та же история. Работает-то в принципе абсолютно тот-же код, за исключением некоторых ifdef блоков. Причин для разницы в производительности нет почти никаких.
На работе мы гоняем приложения как на win, так и на linux. О какой-то разности в скорости никто и не заикается.
Поставить эксперимент можно. Пока цифр не будет, все "логические" доводы не стоят ломаного гроша.
На перегрузке процессор и диски загружает MySQL.
как физик-экспериментатор физику-экспериментатору. Скажите мне, какую кривую вам надо в эксперименте получить, ту и получим
код у перла на самом деле разный. Перл должен быть скомпилирован на каждой машине под то, что там стоит. Апач разный, майсиквел разный, php разный. Потому и нельзя найти никаких результатов под вин, что никто и не пробовал серьезно сравнивать апач под вин и под юних
если майсиквел действительно загружает процессор на 100%, то под юнихом чудес не произойдет, да и всегда лучше ставить ту операционку, которую знаешь. Я знаю обе, поэтому ставлю ту, что больше нравится/удобнее в работе/безотказнее (не скажу какую )
Well, show me the way To the next whisky bar. Oh, don't ask why
-
- Уже с Приветом
- Posts: 13684
- Joined: 16 Jan 2001 10:01
Поставил Апаче 1.3.9 + PHP 4.3.5 он Виндовс.
Сама процедура до предела проста (главное - не забыть скопировать php4ts.dll into Apache dir).
Поскольку Apache и PHP имеют могучую систему тонкой настройки, предлогаю господам админам присоветовать оптимальные значения для критических параметров httpd.conf и php.
Типа:
(php.ini)
max_execution_time = 55
max_input_time = 60
memory_limit = 8M
always_populate_raw_post_data = On
output_buffering = 4096
mysql.allow_persistent=On
mysql.max_persistent=-1
mysql.max_links=-1
(httpd.conf)
MaxKeepAliveRequests 100
KeepAliveTimeout 15
MaxRequestsPerChild 0
ThreadsPerChild 50
...
Сама процедура до предела проста (главное - не забыть скопировать php4ts.dll into Apache dir).
Поскольку Apache и PHP имеют могучую систему тонкой настройки, предлогаю господам админам присоветовать оптимальные значения для критических параметров httpd.conf и php.
Типа:
(php.ini)
max_execution_time = 55
max_input_time = 60
memory_limit = 8M
always_populate_raw_post_data = On
output_buffering = 4096
mysql.allow_persistent=On
mysql.max_persistent=-1
mysql.max_links=-1
(httpd.conf)
MaxKeepAliveRequests 100
KeepAliveTimeout 15
MaxRequestsPerChild 0
ThreadsPerChild 50
...
-
- Уже с Приветом
- Posts: 13684
- Joined: 16 Jan 2001 10:01
Privet wrote:На перегрузке процессор и диски загружает MySQL.
BTW, do you use this:
http://dev.mysql.com/doc/mysql/en/INSERT_DELAYED.html
?
-
- Уже с Приветом
- Posts: 13684
- Joined: 16 Jan 2001 10:01
vovap wrote:
Наверняка нет, потому как форум может подключаться к разняым базам. Посему работает на стандартном SQL, расширения той или иной базы не используются.
А ну как хакнуть?
Все равно при смене базы PHP требует изменения функций...
Но от CGI все равно надобно избавиться, и включить pooling.
"Я так думаю "
-
- Уже с Приветом
- Posts: 12014
- Joined: 05 Apr 2000 09:01
- Location: Philadelphia, PA, USA
-
- Уже с Приветом
- Posts: 13684
- Joined: 16 Jan 2001 10:01
Мне кажется можно обойтись без реальной базы:
1. создать 1-2 таблицы со схожей (хотя бы отдаленно) на приветовскими с индексами;
2. нарисовать примитивные PHP scripts делающие select and insert (Я понимаю это основные типы запросов)
3. Нарисовать test plan в JMeter;
4. Запустить все это в IIS+PHP(CGI) vs. Apache/PHPmod
Как называеся BB implementation используется приветом?
Где можно скачать demo/trial?
1. создать 1-2 таблицы со схожей (хотя бы отдаленно) на приветовскими с индексами;
2. нарисовать примитивные PHP scripts делающие select and insert (Я понимаю это основные типы запросов)
3. Нарисовать test plan в JMeter;
4. Запустить все это в IIS+PHP(CGI) vs. Apache/PHPmod
Как называеся BB implementation используется приветом?
Где можно скачать demo/trial?