(Цей пост спочатку з'явився у блозі Спайка Речі... Та інше...)
Учора я брав участь у «пожежній тревозі» щодо запуску нового сайту на Rails у дуже стислі терміни. Сайт працював нормально в режимі розробки/тестування, але індексна сторінка у виробничому середовищі відтворювалася понад 10 секунд.
Оскільки він працював поза виробничим середовищем, ми дійшли висновку, що це пов'язано з інфраструктурою хостингу. Ми перевіряли Apache, Passenger, навантаження на сервер, мережеву конфігурацію тощо. Нічого.
Нарешті, я вирішив перевірити log/production.log
, і ось воно:
Processing by BlahController#index as */*
Rendered blah/_carousel.html.erb (5795.2ms)
Rendered blah/index.html.erb within layouts/site (5801.5ms)
Ми швидко виявили це через обробку зображень, яка не кешувалася. Це не проявлялося поза виробничим середовищем, тому що зображення були іншими. Я не буду нудити вас деталями.
Однак, я нудитиму просвіщу вас щодо моєї думки. Під час налагодження проблеми, почніть з простих речей. Логи Rails не надто детальні, але вони надають достатньо інформації, щоб швидко дійти до вирішення проблем у вашому коді.