
У нас есть сайт на выделенном сервере. Вот настройки сервера:
- Подлинный Intel, Intel (R) Core (TM) i5-2400[email protected]
- Версия Plesk v10.3.0_build1012110629.18 os_Ubuntu 10.04
- ОС Linux 2.6.38.2-xxxx-std-ipv6-64
- Память Всего 16Gb
Этот веб-сайт (http://www.bobcat.pro) — сайт электронной коммерции, состоящий из 18000 категорий и 300000 товаров. Все работает на PHP5 / MySQL.
Как вы можете видеть при просмотре, отображение страниц происходит за 5 секунд (или больше), что слишком долго. Я ищу способ уменьшить отображение, совместимый с установкой нашего сервера.
Я использовал Varnish, но у меня было слишком много проблем с опытом, чтобы повторить попытку. Что вы рекомендуете? Модуль page_speed google для apache 2 — это хорошее решение?
решение1
Лак, вероятно, является правильным решением для вас. Однако вы можете использовать и другие материалы.
Попробуйте использовать любой из следующих вариантов:
Эти решения ускорят резервный доступ для вашего процесса Apache и устранят накладные расходы на доступ к базе данных для страниц.
Тем не менее, я бы все же рекомендовал вам задать вопрос о том, с какими проблемами вы столкнулись при использовании лака, возможно, они будут решены, поскольку лак обычно отлично подходит большинству людей.
решение2
Лучше всего на этот вопрос могли бы ответить поставщики приложений для электронной коммерции.
На первый взгляд, похоже, что он хочет какие-то заголовки управления кэшем в ответах HTTP — заголовок «Expires» или «Etag». Однако вам не обязательно добавлять их везде, иначе вы можете что-то сломать там, где пользователю действительно нужен новый вид вместо перехода в кэш.
На самом деле, это своего рода преступление, что приложение электронной коммерции не корректирует эти заголовки изначально (приложение лучше всех знает, когда кэш «устаревает»). Я бы поискал что-то другое.
Кроме того, судя по времени, необходимому для одного запроса, может показаться, что приложение не предназначено для того количества категорий и продуктов, которые вы ему навязываете. Вероятно, они выполняют некоторые SQL-запросы, которые включают «сканирование таблиц» (много дисковых операций ввода-вывода) или, в качестве альтернативы, некоторые сложные запросы, которые включают очень большие рабочие наборы в памяти базы данных (например, сортировка 300 000 записей). Индексы в базе данных MySQL иногда могут помочь в решении этих проблем, но, опять же, было бы лучше, если бы процедура установки приложения добавляла их, поскольку сначала нужно знать, какие запросы приложение, скорее всего, выдаст, прежде чем можно будет оптимизировать базу данных для них. Еще один признак того, что у вас неправильное приложение электронной коммерции для этой работы.