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