Переходить на php 7.0 или подождать? Вот и мы так долго думали, взвешивали, прикидывали. Однако вчера настал тот момент, когда нужно было быстро принять решение
Случилось то, чего не желает себе ни один веб-мастер, ни один сисадмин хайлоада. Портал стал тормозить от нагрузки. Приходящие посетители оплатившие доступ к закрытым материалам и просто посетители, идущая одновременно рассылка 100К+ подписчикам портала, хелпдеск не имеющий возможности адекватно работать с админкой и оказывать помощь людям
В результате вечером был совершен переход с php 5.6 на php 7.0
Краткие характеристики сервера
- ОС: FreeBSD
- RAM: 5Гб
- CPU: Xeon E5335 2.00GHz * 4 (ядра)
Поскольку это FreeBSD и держать одновременно более одной версии php не представляется возможным (на самом деле можно, но с этим придется попариться), даунтайм был всего 40 минут, которые потребовались на снос php 5.6 и установку php 7.0
Кстати у нас есть еще сервер на Gentoo, которая предоставляет возможность установить несколько версий php. На данный момент там php 5.6, 7.0, 7.1. Но это к слову
И вот, что у нас получилось. Посмотрим на дневные графики, где в левой части день вчерашний, а справа день сегодняшний
Что не изменилось
Что изменилось
С какими мы столкнулись трудностями
- В текущем php 7.0 нет модуля memcache. Пришлось скачивать сторонний порт php70-pecl-memcache
- Нет модуля mysql. К этому нужно быть готовым и заранее предусмотреть в плане перехода переход на mysqli. Более-менее современные фреймворки поддерживают mysqli
- Если используете pecl-pdflib, будте готовы к тому, что работать он не будет. Мы используем wkhtmltopdf
- Часть портала использовала mpdf. Он не работает с php 7.0. Установили свежий при помощи composer
- Провели легкий рефакторинг кода
Вывод
При том же количестве посетителей портала нагрузка на сервер упала в два раза

- Системный администратор с 2000 года
- Участник Freelancehunt, Хабр Q&A, cyberforum
- Кейсы