Дмитрий Сергеевич (axshavan) wrote,
Дмитрий Сергеевич
axshavan

Categories:

Как мы переезжали на PHP7

Ответы на два вопроса из поста про Амстердам:
- "нет-нет" и "нет-да" на почтовых ящиках это типа "не совать газеты" и "совать/не совать спам".
- крюк под крышей нужен для подъёма мебели в квартиру. Места в Амстрдаме не очень много, так что его экономят. Ну, по крайней мере, раньше экономили, до введения каких-то строительных норм, которые запрещают делать лестницы с углом подъёма в 60 градусов и подъезды, где с трудом расходятся два человека.

Так что все комментаторы были совершенно правы.

Теперь про переезд на PHP 7.0 с версии 5.6. У нас есть проект с небольшой посещаемостью, около 1000 посещений в минуту. Тем не менее, там работают шесть серверов, хотя и один справился бы легко. Это надо, чтоб нормально работал кластер редиса. Ну и иногда заходят боты, начинают индексировать сайт, там лучше, когда сервер всё же не один нагрузку принимает.

Ой, кластер редиса это тоже такая жопа. Экономия памяти, конечно, существенная - если раньше каждый сервер хранил у себя свою копию данных в памяти, то теперь она размазана по кластеру, по трём мастерам и трём слейвам. Это означает, что сервера постоянно дёргают друг друга, если у себя не находят нужный ключ. А ключи бывают по мегабайту у нас - справочник всех свойств по всем категориям, например. Чтоб не прогибалась сеть, мы всё равно используем локальное хранилище для этих монструозных ключей. На PHP 5.6 был xcache. Но в седьмом пхп икскэша нет.

И с самим редисом была засада ещё та. Мы использовали стандартное пекловское расширение PhpRedis, которое предоставляет классы Redis и RedisCluster. Версия для пхп 7, как выяснилось, работает нестабильно. Примерно 0,2% всех посещений вызывают ошибку, причём это fpm падает в segfault, отдавая 502. Выкинули на хер, я заменил на PRedis. Это pure-PHP код для работы с редисом через сокеты. Нареканий нет.

Проблемы были с локальным кэшированием. Так как икскэша нет, начали искать альтернативы. Пробовали мемкэш, собрали библиотеку для работы с ним в пхп 7 руками. Не покатило, падает, надёжности никакой. Я уже собирался использовать shared memory, но потом решили, что будет ещё один локальный редис на каждом сервере. Так и живём с кучей редисов теперь.

Итого: насколько выросла производительность, мне неизвестно. По ощущениям, нинасколько, я не заметил никакого прироста. Надёжность работы, напротив, снизилась, уменьшилась стабильность. Зато сколько времени и сил угробили на переезд и все эти эксперименты! На фиг обновлялись, ещё бы годик пожили на 5.6, ничего бы не случилось.

Оригинал записи http://blog.axshavan.cz/2016/08/php7.html
Tags: web, работа
Subscribe

  • Фотографии из мини-походика 18 июля

    На прошлой неделе мы со Славкой прошли пешком чуть больше 19 километров по южным предместьям Праги. Я выбрал маршрут таким образом, чтоб там были и…

  • Инопланетный чертополох

    Пару дней назад ходили вечером гулять по окрестностям. Я повстречал возле пруда Асуан заросли какой-то инопланетной херни. Это такие шипастые шары…

  • Плёнка №196

    Плёнка: Kodak 400TX Фотоаппарат и объектив: ФЭД-5в + Индустар И-61Л/Д 2.8/53 Проявитель: Fomadon LQN. Время проявки 10 минут при 20°C Сканер:…

  • Post a new comment

    Error

    Comments allowed for friends only

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 10 comments

  • Фотографии из мини-походика 18 июля

    На прошлой неделе мы со Славкой прошли пешком чуть больше 19 километров по южным предместьям Праги. Я выбрал маршрут таким образом, чтоб там были и…

  • Инопланетный чертополох

    Пару дней назад ходили вечером гулять по окрестностям. Я повстречал возле пруда Асуан заросли какой-то инопланетной херни. Это такие шипастые шары…

  • Плёнка №196

    Плёнка: Kodak 400TX Фотоаппарат и объектив: ФЭД-5в + Индустар И-61Л/Д 2.8/53 Проявитель: Fomadon LQN. Время проявки 10 минут при 20°C Сканер:…