это странное название, поэтому позвольте мне объяснить:
У нас есть веб-приложение (PHP, Zend Framework), которое довольно успешно. Со временем трафик рос и производительность снижалась (десятки запросов с запросами от 80 до десятков тысяч со средним> 600 мс). Мы не ожидали такого большого количества трафика при первой разработке приложения, так что нет ничего удивительного. Мы решили изучить многие вещи, которые могли бы улучшить производительность.
После нескольких дней усилий появилась ошибка в работе, которую нужно было исправить. Поскольку первые изменения, которые мы сделали для очистки некоторых запросов и кода кэширования, уже были сделаны и протестированы, мы решили, что можем просто добавить их в обновление. Ни одно из изменений на самом деле не улучшило производительность при локальном тестировании и постановке, но в любом случае.
Но да, это было на производстве. Наши графики упали почти до нуля, и мы были полностью уничтожены, что обновление каким-то образом заставило весь трафик исчезнуть. Но когда мы посмотрели поближе, графики вернулись к 80 мсам и почти не были видны рядом с горами 600 мс;)
Итак, мы полностью исправили проблемы с производительностью с некоторыми изменениями, мы даже не думали, что это что-то изменит. Полный успех, но, конечно, мы хотим понять, какое из этих изменений имело значение.
Как бы вы решили эту проблему?
Некоторый фон:
- PHP-приложение, использующее Zend Framework, MySQL в качестве базы данных, Memcache для кэширования.
- Мы получаем наши графики производительности и информацию о приложении от NewRelic.com, но я не могу найти причину повышения производительности там.
- Используя jMeter, мы можем воспроизвести плохую производительность на наших серверах разработчиков, а также более или менее лучшую производительность обновленной версии.
Единственная идея, которая у меня есть сейчас, - это начать со старой версии, загрузить ее, добавить один коммит, загрузить тест, добавить другую функцию, загрузить ее ... но это не звучит забавно или очень эффективно. 1023 *
Обновление: Мы нашли причину проблем с производительностью, позже я добавлю ответ, чтобы объяснить, что мы сделали и в чем причина. (Или как к таким вопросам относятся обновления и решения?)
Обновление 2: Добавит решение и способ найти его как ответ.