Страница 1 из 1

Настройка Open Server 5.2.0 на максимальную производительность

Добавлено: 11 дек 2014, 18:55
Vlad
Использую Open Server несколько месяцев в качестве домашнего веб-сервера как основу для простенького скрипта на PHP. Программный комплекс шикарен! Спасибо разработчикам.

Работает скрипт для сбора статистики с веб страничек, и немножко парсинга. Последнее время аппетиты (количество запросов) значительно возросли, и появились нюансы:

1) база

было
MySql server has gone away
или
MySql server too many connections

решилось как
max_connections = 1000
в MySQL-5.6_my.ini

2) веб сервер

было
"Child: Starting 32 worker threads.
Server ran out of threads to serve requests. Consider raising the ThreadsPerChild setting"
в связи с чем половина запросов просто терялись

стало
ThreadLimit 70
ThreadsPerChild 70
MaxKeepAliveRequests 500
KeepAliveTimeout 60
Timeout 60
в
Apache-2.4_server.conf

но, этого не достаточно, запросы все равно теряются !!

увеличение более чем 80 ThreadsPerChild приводит к постоянным
Parent: child process 4880 exited with status 3221226356 -- Restarting.
Parent: child process 4772 exited with status 3221225620 -- Restarting.
Parent: child process 4772 exited with status 3221225477 -- Restarting.

увеличение более чем 128 ThreadsPerChild еще и приводит к
PHP Fatal error: Out of memory (allocated 30670848) (tried to allocate 2337526 bytes)
не смотря на то, что стоит
memory_limit = -1
в
PHP-5.6_php.ini

3) PHP

прописывал ручную или из скрипта memory_limit в значения
-1
1024M
2048M
3072M
принципиальной разницы не заметил

если более чем 128 ThreadsPerChild
то будет PHP Fatal error: Out of memory

менял количество процессов Fast CGI PHP от 6 до 1500 - принципиальной разницы не заметил, оставил 150

да, железо Core-i7, 16Gb, инет 100M, кроме Open Server 5.2.0 и Win 7 x64 utimate SP1 на нем ничего

поскольку данные параметры установлены методом научного тыка, и сервер все равно не удовлетворяют возросшим аппетитам (они еще больше вырастут) есть вопрос к опытным админам/разработчикам:

- какие параметры необходимо прописать чтобы разкочегарить веб сервер по взрослому ?

- возможно в Open Server есть или планируется какие-нибудь профили конфигурации для "минимальное потребление ресурсов" / "стандарт" / "максимальная производительность" ?

- возможно 64-битная версия мне в помощь, когда она ожидается?

Добавлено: 11 дек 2014, 19:00
Максим
Vlad, 32 битная версия PHP (которая используется в Open Server) может использовать всего лишь от 800 мегабайт до 1,5 гига памяти максимум (зависит от подключенных расширений). А у вас скрипт хочет занять аж 2,4 гигабайта. Так что вам поможет только 64-битная сборка Open Server и 64-битная версия PHP.
Будет? Будет. Когда - предположительно на новый год :) Т.е. уже скоро.

Добавлено: 11 дек 2014, 19:23
Dragon_Knight
KeepAliveTimeout 60
Timeout 60
Я-бы таймауты убрал в минимум, 2-4 секунды, иначе простая SYN атака положит Ваш север.


Максим, как-же сильно мы ждём x64 сборку... :)

Добавлено: 11 дек 2014, 19:34
Максим
Dragon_Knight, не до неё было :D За последние две недели половину кода программы переписал, хотя конечно если судить по новостям, то видимых изменений не так много. Но зато теперь вроде как вся программа вылизана, можно неспешно собирать 64-битную сборочку, как раз оттестирую к новому году, или около того. Тут же не просто 64-битку взять с офф. сайта php и готово, тут нужно найти каждое расширение (из дополнительных) в 64 битном варианте, свои скомпилировать в x64 (Imagick), все программы из расширенного пакета заменить на 64-битные аналоги (если есть) и т.д. Плюс другие модули, MySQL, Mongo и т.д. Так что работы много.

И скорее всего единую сборку делать не буду, будет Open Server семейство x64 и семейство x86 т.е. две разных ветки. А мешать в одну сборку и x86 и x64 модули как сейчас с Redis - так не красиво.

Добавлено: 11 дек 2014, 19:37
Dragon_Knight
Максим, ну что красиво\не красиво это вопрос спорный, а вот то что размер будет в 2 раза больше, при условии что эти 50% веса вообще никогда запускаться не будут, - это не радует.
Я всеми 4 лапами и двумя крыльями за раздельные сборки :)

Добавлено: 11 дек 2014, 19:44
Максим
Так мучаться то недолго осталось, планирую после выпуска 64-битной сборки сделать на сайте конфигуратор любых собственных сборок, как душа пожелает. Вот там уже пусть себе что хочет и как хочет собирает. Только мне кажется что подавляющее большинство юзверей будет обычные сборки качать, а все эти танцы с самосборщиком будут не сильно востребованы, в первую очередь из-за лени юзверей. Куда проще нажать на кнопку, чем тыкаться в птички и собирать себе особый дистрибутив Open Server.

Добавлено: 11 дек 2014, 20:00
Dragon_Knight
Конфигуратор вещь хорошая, но я думаю так-же как и Вы, - он будет в большинстве случаев бесполезен.
Даже лично мне, я OS использую у себя на компе для отладки и разработке, но и на нескольких паблик серверах, и бывают моменты когда нужно в замен PHP 5.4 загрузить 5.2, и поэтому как на раб. станцию, так и для сервера я буду качать, аналог текущей: "Расширенная редакция".

Добавлено: 03 мар 2015, 14:24
qwnick
Вставлю 5 копеек, глядишь, кому-то пригодится.
Ваш тяжелонагруженный проект с диском много работает? А что, если вынести папку openserver на ramdrive?

Мне это очень ускоряет верстку, использую SoftPerfect RAM Disk