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

vovap
Уже с Приветом
Posts: 12014
Joined: 05 Apr 2000 09:01
Location: Philadelphia, PA, USA

Post by vovap »

Palych wrote:Как называеся BB implementation используется приветом?
Где можно скачать demo/trial?

phpBB 2:
http://www.phpbb.com/downloads.php
Palych
Уже с Приветом
Posts: 13684
Joined: 16 Jan 2001 10:01

Post by Palych »

I assume it's MySQL 4.0 ?
User avatar
Privet
Администратор
Posts: 17200
Joined: 03 Jan 1999 10:01
Location: Redmond, WA

Post by Privet »

Извиняюсь за молчание. Три дня провёл в НЙ. Только что появился.

В зипе находятся вайлы настройки - PHP и MySQL Посмотрите, может быть увидите несуразности.

Завтра я что-ни будь отвечу.
You do not have the required permissions to view the files attached to this post.
Привет.
Palych
Уже с Приветом
Posts: 13684
Joined: 16 Jan 2001 10:01

Post by Palych »

Menya terzayut smutnye somneniya po povodu:

Code: Select all

max_execution_time = 600     ; Maximum execution time of each script, in seconds

in php.ini

Я сильно сомневаюсь что кто-то честно будет ждать 5 минут результатов постинга. Вместо етого скорее всего будет нажат стоп и попытка повторена. Что собственно подтверждается обилием дупов...
Может честно уменьшить до 90-120?
Хотя, как я понимаю - при отсутствии транзакций ето может приверсти к "неполному" посту...
User avatar
Privet
Администратор
Posts: 17200
Joined: 03 Jan 1999 10:01
Location: Redmond, WA

Post by Privet »

Как ни странно, многие участники честно ждут. Видимо, сказывается опыт, что раз висим, так висим.
При уменьшение времени выполнения скрипта иногда просто невозможно отправить сообщение. Время выбрано из опыта. 3 минуты маловато.

Вообще, я согласен, что такой большой таймаут - непорядок. Уменьшение мало чего даёт. Прерывание HTTP запроса не прерывает SQL запрос.
Привет.
User avatar
Privet
Администратор
Posts: 17200
Joined: 03 Jan 1999 10:01
Location: Redmond, WA

Post by Privet »

Strannik223 wrote:Могу дать для полигона свою домашнюю машину, у меня FreeBSD-5-Current, кабельный модем.
Борис, какой средний исходящий трафик, я 50К смогу выжать.
AMD-2500, 1Gb ram.

Нужно будет написать скрипты генерации нагрузки и запустить с несольких клиентов, это позволит оценить производительность не остнавливая работы форума

Потому что иного пути кроме как постановка эксперимента я не вижу.


Исходящий трафик не важен. При перегрузке он падает до нуля.

По хорошему, надо из реального лога брать запросы и лупить ими по тестовому серверу. Написать подобный парсер не трудно, но... нужно время.

Как сделать клон БД я пока не знаю. Это же 2GB! Сжатие, конечно, поможет, но делать всё это надо будет долго. Реальные данные я сейчас давать опасаюсь. Симулированные данны, боюсь, создать будет трудно, да и как по ним потом искать? Можно использовать урезанные данные годичной давности. Я подумаю.

Самая главная беда - я не могу точно посмотреть на каких транзакциях висит MySQL. Программисты, писавшие winmysqladmin определённо, windows не знают. Окно, в котором показывается запрос, не масштабируется и я могу видеть только SELECT и несколько сопуствующих символов. Я, конечно, могу найти что это за запрос приблизительно и реально я, конечно знаю, какой запрос блокирует базу, но работать оперативно, увы не получается.

Если кто знает, как смотреть текущие запросы в MySQL - научите.

Есть большая вероятность, что в скором времени у нас появится новый сервер. Вторичный сервер уйдёт на покой и я могу его отдать для экспериментов.
Предполагается, что всего будет два сервера. Новый сервер будет сконфигурирован как БД сервер (W2K + MySQL). Нынешний сервер будет выполнять только функцию веб-сервера. Покупать оборудование собираюсь в бижайшее время. Принимаются любые советы - где и что брать.

Что нужно:

1. CPU Athlon 2000 и выше (максимум определяется MSI K7D) две шт.
2. Память ( не менее 2 GB)
3 Box ( наверное, возьму алюминиевый)
4 Диски. Поставлю RAID, который недавно получил в дар
5 Сеть. Прямая витая (crossover) Какие сетевые платы пока не знаю. Идеи???



У меня есть такое предложение. Я могу создать shell account или дать доступ любым другим способом для группы участников, которые возмуться установить на этом ящике систему, о которой они сами договорятся. Я могу оказать помощь с места. После установки мы можем провести испытания этой платформы в боевом режиме. Наверное, это самый простой спосов получить реальный результат.
Привет.
vovap
Уже с Приветом
Posts: 12014
Joined: 05 Apr 2000 09:01
Location: Philadelphia, PA, USA

Post by vovap »

Privet wrote:Прерывание HTTP запроса не прерывает SQL запрос.

Это точно известно? Сие означало бы коннектион пулинг анлес это в MySQL работает совсем иначе чем в SQL Server.
vovap
Уже с Приветом
Posts: 12014
Joined: 05 Apr 2000 09:01
Location: Philadelphia, PA, USA

Post by vovap »

Privet wrote:Как сделать клон БД я пока не знаю. Это же 2GB!

Одно СD. Почта.
Palych
Уже с Приветом
Posts: 13684
Joined: 16 Jan 2001 10:01

Post by Palych »

Я посмотрев в исходники PHPBB тоже склоняюсь к тестированию системы в сборе.
На домашнем PC почему-то не запускается MySQL. Попробую на рабочем...
По поводу прерывания запросов - все правильно: в mysql-то нет таймаута, так что если запрос проник в mysqld - он будет стоически выполняться...
Мне все же кажется что причина тормоза - блокировки и флуши выполняемые при INSERT...
Если так - может помочь INSERT NODELAY ор LOCK TABLES ... WRITE; INSERT...; INSERT ...; ... UNLOCK TABLES;
как советует http://dev.mysql.com/doc/mysql/en/Insert_speed.html
vovap
Уже с Приветом
Posts: 12014
Joined: 05 Apr 2000 09:01
Location: Philadelphia, PA, USA

Post by vovap »

Palych wrote:По поводу прерывания запросов - все правильно: в mysql-то нет таймаута, так что если запрос проник в mysqld - он будет стоически выполняться...

И даже при закрытии коннекта?
User avatar
Strannik223
Уже с Приветом
Posts: 569
Joined: 14 Dec 2003 04:06
Location: Львов->Киев->Торонто

Post by Strannik223 »

Privet wrote:для группы участников, которые возмуться установить на этом ящике систему, о которой они сами договорятся.


Ох и драка будет :mrgreen:
Никакой разрухи нет. (с) Проф. Преображенский.
Palych
Уже с Приветом
Posts: 13684
Joined: 16 Jan 2001 10:01

Post by Palych »

vovap wrote:
Palych wrote:По поводу прерывания запросов - все правильно: в mysql-то нет таймаута, так что если запрос проник в mysqld - он будет стоически выполняться...

И даже при закрытии коннекта?

А разве возможно как-то уведомить процесс (или thread), который обрабатывает запрос пришедший по коннекту, о том что этот коннект помер? он ведь в этот момент не используется...
vovap
Уже с Приветом
Posts: 12014
Joined: 05 Apr 2000 09:01
Location: Philadelphia, PA, USA

Post by vovap »

Strannik223 wrote:Ох и драка будет :mrgreen:

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

Post by vovap »

Palych wrote:А разве возможно как-то уведомить процесс (или thread), который обрабатывает запрос пришедший по коннекту, о том что этот коннект помер? он ведь в этот момент не используется...

Ну я не знаю, как это работает на SQL Server - но думаю, что при закрытии коннекта он посылает сигнал своему прощессу на сервере о прекращении - и тот откатывается. Но что процесс прекращается - эт точно.
User avatar
Privet
Администратор
Posts: 17200
Joined: 03 Jan 1999 10:01
Location: Redmond, WA

Post by Privet »

Закрытие HTTP соединения никак не влияет на SQL запрос.

Проследим цепочку.

1. Открыли HTTP соединение.
2. Сервер, получив запрос, создаёт PHP процесс
3. PHP процесс генерирует SQL запрос по TCP-IP.
4. Слиент, открывший HTTP соединение, не дождавшись рвёт связь.
5. HTTP на сервере закрываем.
6. Вслед за ним гаснет PHP процесс.
7. Далее рвётся TCP-IP соединение с MySQL
8. SQL запрос как висел, так и висит. Естественно, когда он
закончится, результат сливать будет некуда.


Для того, чтобы освободить MySQL можно сделать только две вещи - убить затянувшийся запрос или остановить MySQL.
Привет.
vovap
Уже с Приветом
Posts: 12014
Joined: 05 Apr 2000 09:01
Location: Philadelphia, PA, USA

Post by vovap »

Privet wrote:4. Слиент, открывший HTTP соединение, не дождавшись рвёт связь.
5. HTTP на сервере закрываем.
6. Вслед за ним гаснет PHP процесс.

Когда клиент останавливает запрос даже этого не происходит - понеже сервер об этом просто не знает.
Другое дело, когда случается таймаут. Вот тут PHP процесс гаснет и перед этим может выдать всем своим объектам событие закрытия. Коннект при этом может выдать команду закрытия ассоциированному SQL процесу.
Во всяком случае с ADO и SQL Server насколько я понимаю, это происходит примерно так.
Palych
Уже с Приветом
Posts: 13684
Joined: 16 Jan 2001 10:01

Post by Palych »

Here is draft ot test plan. You'll need JMeter to open and run it ( http://jakarta.apache.org/jmeter/ )

It requires installed PHPBB2 forum, 3 forums (1,2 and 3) and 3 users: "user1", "user2" and "user3" (see "User Parameters")

- Set "Global Variables" to locate server;
- Adjust parameters of "Vew And Post Short Message" (Number of Threads, Loop count);
- Run it by ^R;
Look at "Aggregate Report".

Let me know about bugs.

I'll try to extend it (any ideas are welcome)

(sorry for English - toroplyus'...)
You do not have the required permissions to view the files attached to this post.
Palych
Уже с Приветом
Posts: 13684
Joined: 16 Jan 2001 10:01

Post by Palych »

Pervye rezul'taty testov Apache/PHP/PHPBB2 on Windows.
PII-450Mhz/700Mb, Win2000.

Primechatel'no chto vo vremya testov ves' CPU byl zanyat by PHP (for CGI) or Apache (for module).

Test plan prilagaetsya.

Code: Select all

Apache/PHP/CGI; connect: 5 threads, 5 loops

         Count   Avg   Min   Max   Err%   Rate
ViewIndex      50   4349   761   7611   0.00%   27.4/min
View Forum      25   5514   2063   7551   0.00%   18.0/min
Login         25   3303   451   7811   0.00%   13.7/min
View Topic      25   5265   3865   7501   0.00%   17.5/min
NewTopicGet      25   4558   2283   7430   0.00%   13.6/min
PostShortMessage   25   4903   1682   8251   0.00%   14.3/min
View Posted Topic   25   3865   490   7130   0.00%   15.3/min
TOTAL         200   4513   451   8251   0.00%   1.7/sec


Apache/PHP/module
connect: 5 threads, 5 loops

         Count   Avg   Min   Max   Err%   Rate
ViewIndex      50   3040   581   12397   0.00%   37.7/min
View Forum      25   4373   1712   12537   0.00%   22.6/min
Login         25   1829   630   11636   0.00%   18.9/min
View Topic      25   3912   1992   6039   0.00%   22.4/min
NewTopicGet      25   3748   1772   12737   0.00%   18.8/min
PostShortMessage   25   3144   1482   5408   0.00%   19.3/min
View Posted Topic   25   2713   491   5337   0.00%   20.0/min
TOTAL         200   3225   491   12737   0.00%   2.3/sec

pconnect: 5 threads, 5 loops

         Count   Avg   Min   Max   Err%   Rate
ViewIndex      50   3150   491   8212   0.00%   37.0/min
View Forum      25   4160   941   9273   0.00%   23.2/min
Login         25   1555   170   3225   0.00%   18.9/min
View Topic      25   4411   2553   6048   0.00%   22.5/min
NewTopicGet      25   3540   1512   7581   0.00%   18.8/min
PostShortMessage   25   3168   942   4887   0.00%   18.6/min
View Posted Topic   25   2769   420   5998   0.00%   20.0/min
TOTAL         200   3238   170   9273   0.00%   2.3/sec

You do not have the required permissions to view the files attached to this post.
vovap
Уже с Приветом
Posts: 12014
Joined: 05 Apr 2000 09:01
Location: Philadelphia, PA, USA

Post by vovap »

Palych wrote:Pervye rezul'taty testov Apache/PHP/PHPBB2 on Windows.
PII-450Mhz/700Mb, Win2000.

Или я такой тупой, или CGI таки отработал быстрее?

То же на IIS конечно надо для сравнения.

База конечно совсем крохотная к размеру памяти и вообще - это плохо.

Тест очень короткий - если чего там со временем может насыщаться - мы этого не видим.
Palych
Уже с Приветом
Posts: 13684
Joined: 16 Jan 2001 10:01

Post by Palych »

Не-а, это я так путано описал.
CGI почти в 2 раза медленнее.
Я фактически тестирую сам тест.
К тому же машина совершенно не серверная.
Одно мне бросилось в глаза: PHP тормозит нещадно, загружая машину по уши при любой конфигурации... в варианте CGI - сросто смерть! Может у Бориса какой ускоритель стоит, типа прекомпилятора? Или IIS как-то хитро процессы запускает...
vovap
Уже с Приветом
Posts: 12014
Joined: 05 Apr 2000 09:01
Location: Philadelphia, PA, USA

Post by vovap »

Palych wrote:Не-а, это я так путано описал.
CGI почти в 2 раза медленнее.

Тада я ничего не понимаю - какой из них CGI а какой - модуле.

К тому же машина совершенно не серверная.

Это несущественно. Памяти довольно.

Может у Бориса какой ускоритель стоит, типа прекомпилятора? Или IIS как-то хитро процессы запускает...

Не стоит. Не запускает. Вот оно и работает не шибко.
Кроме того Вы очень сильно навалились - 200 запросов за 2 секунды. Это существенно больше, чем дает форум. Что -то должно было заткнуться. При крохотной базе - заткнулся процессор на PHP.
User avatar
Privet
Администратор
Posts: 17200
Joined: 03 Jan 1999 10:01
Location: Redmond, WA

Post by Privet »

Спасибо, Аника! Посылку получил. Основа для будущего сервера есть! На выходные поеду закупать всё остальное или что-то закажу по Интернету.
Привет.
User avatar
Privet
Администратор
Posts: 17200
Joined: 03 Jan 1999 10:01
Location: Redmond, WA

Post by Privet »

Palych, vovap прав. Вы тестируете главным образом производительность веб-сервера. Это, конечно, тоже очень интересно знать, но не показывает полностью поведение Привета.
На Привете сейчас основная проблоема - база данных. Первой подвисает она.

Я посмотрю, что я могу сделать, чтобы обеспечить Вас тестовыми данными. Дело в том, что у меня не совсем стандартная база. В некоторые таблицы добавлены поля, есть дополнительные таблицы. Правда, ничего не убрано и стандартный софт, скорее всего, работать с ней будет. Индексы я не менял. Изменения не должны сильно сказаться на быстродействии. Существующие запросы я принципиально не менял. Стандартный форум должен быть достаточно хорошей аппроксимацией Привета.

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

Проблема ещё во времени. Я прихожу с работы примерно в 8. У меня всего есть час-полтора для занятий форумом.
Привет.
User avatar
Privet
Администратор
Posts: 17200
Joined: 03 Jan 1999 10:01
Location: Redmond, WA

Post by Privet »

vovap wrote:
Privet wrote:4. Слиент, открывший HTTP соединение, не дождавшись рвёт связь.
5. HTTP на сервере закрываем.
6. Вслед за ним гаснет PHP процесс.

Когда клиент останавливает запрос даже этого не происходит - понеже сервер об этом просто не знает.
....


Я имел ввиду, что клиент жмёт кнопку "Stop" или посылает из браузера другой запрос. В этом случае сервер благополучно завершает сессию, включая остановку PHP процесса, но SQL запрос продолжает висеть.

Это у меня неоднократно случалось. Если даю неудачную команду (напримр у меня была простейшая форма, через которую я давал запросы напрямую), то, чтобы остановить надо лезть в администратор и убивать запрос что не всегда рабтает нормально.

Я не понял как это связано с пулингом.
Привет.
User avatar
Privet
Администратор
Posts: 17200
Joined: 03 Jan 1999 10:01
Location: Redmond, WA

Post by Privet »

vovap wrote:
Palych wrote:Pervye rezul'taty testov Apache/PHP/PHPBB2 on Windows.
PII-450Mhz/700Mb, Win2000.

Или я такой тупой, или CGI таки отработал быстрее?
...


Как я понял, оценка делается по average, т.е. по второй колонке. Максимальное время выполнение получилось у апача больше.

На всякий случай, Palych, у меня MySQL ещё создаёт binary log, который питает вторичный сервер.
Привет.

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