Apache + SuPHP + сотни посетителей + загрузка в интернет = процессор на коленях. Любая идея, кроме Switch To NginX?
В определенных условиях CMS ставит мой сервер на колени (0% ЦП осталось, в то время как загрузка сервера обычно не превышает 20%, как правило, официально из mysqld, тонны ожидания и tml в mysql, медленный журнал mysql взрывается с выделением tmp и т. Д.), Это хорошо известный случай для этой CMS, основанный на комбинации этих событий:
- сотни посетителей, просматривающих сайт одновременно
- база данных, насчитывающая сотни тысяч предметов
- Оболочка php: SuPHP (fcgid)
Дискуссионные форумы этой CMS (называемой Piwigo) знают об этой проблеме, но единственный ответ, который дается, это "переключиться на NginX с Php-fpm". Давайте умножим на 100 количество изображений и посетителей, если это NginX вместо Apache+SuPHP, проблема все еще отсутствует.
Проблема в том, что я не могу одним щелчком пальца переключить весь сервер на NginX, речь идет не только о моих собственных веб-сайтах и - не стыдно это признать - у меня пока нет компетенций в NginX. Я должен поддерживать работоспособность веб-сайтов, чтобы мой сервер продолжал использовать Apache.
Имея это в виду, пожалуйста, вы видите выход из этой проблемы? Какой-то способ "обмануть" и позволить suPHP снова раскачиваться в этой конкретной ситуации? Если это происходит за счет проглатывания 10+ ГБ ОЗУ, то, конечно, почему бы и нет, мой сервер использует только треть своих 32 ГБ ОЗУ, и даже с остальным для кэширования использование диска остается спокойным. Если это за счет удвоения заряда процессора, ха-ха, еще раз, конечно, это будет хорошо.
Если у вас есть предложения, я весь слух, правда!
Подробная информация о моем сервере: Debian Wheezy, Apache2, PHP версии 5.4.4-14+deb7u14, Php, работающий от SuPHP (fcgid), Mysql 5.5.38 и, честно говоря, чудовищно мощный выделенный сервер AMD Opteron 4334, 32 ГБ быстрой оперативной памяти, два SSD-диска Raid-1 для / и два диска Raid-1 Sata для /home. Панель: webmin + virtualmin. Панель позволяет переключать виртуальный домен ( = 1 веб-сайт со своим пользователем) на Php-CGI или Mod-PHP. Конфигурация Mysql невиновна (бесчисленное множество mysql-tuner, tuning-primer), она уже постепенно настроена на то, чтобы позволить высасывать тонны оперативной памяти и кэшировать, как будто не было завтра.
Если у вас есть предложения для решения, которое не требует NginX, я буду очень признателен!:)
1 ответ
Выполните в Google поиск сбоев piwigo, и вы получите несколько результатов, например: http://piwigo.org/forum/viewtopic.php?id=24748 http://piwigo.org/forum/viewtopic.php?id=22348
Так что, к сожалению, вы не одиноки с этими проблемами с производительностью с Piwigo. Кажется, что у Piwigo есть кое-что интересное, но производительность / надежность, возможно, не одна из них, по крайней мере, пока? Я обдумываю тестирование дзен-фото, медной руды и т. Д., Потому что кажется, что piwigo не оптимизирован ни для больших фотографий, ни для большого количества пользователей, просматривающих или загружающих фотографии. Возможно, разработчики знают об этой проблеме, и, возможно, именно поэтому нет функции, позволяющей пользователям загружать изображения, кроме как через какой-то дополнительный "плагин", называемый плагином сообщества. Но без этого плагина только администратор может загружать фотографии. Очевидно, что многие сайты хотят, чтобы пользователи могли загружать изображения, поэтому для них странно не предлагать эту функцию "встроенной" в ядро piwigo, если, возможно, они не знают о проблемах с производительностью и что она не сможет справиться с таким использованием.
Так что мой ответ на ваш вопрос, к сожалению, в том, что piwigo не является хорошим выбором для того, для чего вы его используете, кажется, что он еще не готов для сайтов с множеством пользователей / просмотров или большим количеством загрузок изображений, и поскольку большинство галерей используют GD или волшебство изображения, они все могут страдать от одной и той же проблемы, когда дело доходит до этого, если только она не реализована иначе, чтобы избежать перегрузки сервера.
Если кто-то нашел хорошую замену piwigo, которая имеет схожие функции, но с лучшей производительностью, которую я хотел бы знать, я планирую провести некоторое исследование / тестирование для достижения этой цели, когда у меня будет время.