php 5.6 vs php 7.0. Информация к размышлению

Переходить на 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 5.6 vs php 7.0 nginx

php 5.6 vs php 7.0 nginx

php 5.6 vs php 7.0 phpfpm

php 5.6 vs php 7.0 phpfpm

Что изменилось

php 5.6 vs php 7.0 phpfpm

php 5.6 vs php 7.0 systat

php 5.6 vs php 7.0 phpfpm processes

php 5.6 vs php 7.0 phpfpm memory

php 5.6 vs php 7.0 cpu

php 5.6 vs php 7.0 load

С какими мы столкнулись трудностями

  • В текущем php 7.0 нет модуля memcache. Пришлось скачивать сторонний порт  php70-pecl-memcache
  • Нет модуля mysql. К этому нужно быть готовым и заранее предусмотреть в плане перехода переход на mysqli. Более-менее современные фреймворки поддерживают mysqli
  • Если используете pecl-pdflib, будте готовы к тому, что работать он не будет. Мы используем wkhtmltopdf
  • Часть портала использовала mpdf. Он не работает с php 7.0. Установили свежий при помощи composer
  • Провели легкий рефакторинг кода

Вывод

При том же количестве посетителей портала нагрузка на сервер упала в два раза

Александр Черных

системный администратор

Статьи по теме

0