Как улучшить время отклика сервера?

Что я могу сделать, кроме использования кеш-плагина, такого как jotcache, до улучшить время отклика сервера моего веб-сайта?

Я уже удалил все неактивные статьи, модули, плагины и компоненты, есть ли что-то еще, что я могу сделать, чтобы улучшить его?

Я говорю о времени, прежде чем клиент (браузер) получит ответ на свой запрос . И не время загрузки страницы.

17 голосов | спросил web-tiki 22 PMpTue, 22 Apr 2014 22:10:08 +040010Tuesday 2014, 22:10:08

9 ответов


25

Есть несколько шагов, которые вы можете предпринять для повышения производительности на стороне сервера. Обратите внимание, что некоторые из них не будут работать с большинством общих хостов. Для большой производительности вам обычно требуется более мелкозернистый контроль.

Как и при любой оптимизации, вы должны измерить эффект, который он оказывает на производительность вашего сайта. Для основных оптимизаций используются такие инструменты, как PageSpeed ​​ и YSlow полезен (я рекомендую версии Firefox). Для более глубокого понимания вам придется измерять фактическое время отклика вашей живой системы в течение определенного периода времени.

PHP

  1. Включить кеширование кода операции

    Это, наверное, самая большая вещь, которую вы можете сделать, чтобы повысить производительность вашего сайта. Я рекомендую либо использовать OpCache , либо APC . Конфигурация этих кешей может быть изменена для еще большей производительности на основе потребностей серверов и сайтов, но просто установка уже является огромным стимулом.

  2. Обновить версию PHP

    В новой версии PHP регулярно появляются улучшения производительности. Кроме того, существует ряд случаев, когда Joomla может использовать лучший код при работе на более новой версии PHP. На сегодняшний день вы не должны использовать версию PHP старше PHP 5.4, если вам нужна производительность.

  3. Настройки PHP

    В старых версиях PHP (<= 5.3) позаботьтесь об отключении register_globals и magic_quotes_gpc для бесплатного выигрыша. На PHP> = 5.6 измените always_populate_raw_post_data на -1.

  4. Расширения PHP

    Joomla содержит некоторый код для обхода отсутствующих расширений PHP. Это всегда будет медленнее, чем эти расширения. Для достойного повышения производительности установите следующие расширения: mbstring, zip, ftp

Вебсервер

  1. Включить gzip

    Включение сжатия на стороне сервера обменивает полосу пропускания для ресурсов ЦП. Для большинства сайтов это правильный звонок. Будьте внимательны только для сжатия текстовых данных, сжатие двоичных данных даст вам процессорный удар без преимуществ пропускной способности. Вы также можете включить сжатие в настройках Joomla, но лучше, если вы позволите серверу справиться с этим.

  2. Предварительно сжатые статические ресурсы

    Я не говорю о minfication (хотя это тоже помогает), но вы можете настроить Nginx и Apache на уже сжатые ресурсы сервера, эффективно устраняя поражение CPU от сжатия gzip. Бонусные баллы: используйте Zopfli для файлов с меньшим размером.

  3. Использовать FastCGI для PHP

    В частности, вы должны использовать php-fpm. Это предотвращает запуск PHP, когда браузер запрашивает не-PHP-файл.

  4. Использовать соответствующие заголовки кэша

    Использование заголовка Expires может значительно снизить требуемые ресурсы сервера. Ведь самый быстрый запрос никогда не был выполнен.

Apache

Обычно я рекомендую использовать Nginx для высокопроизводительных сайтов. Если вам абсолютно необходимо использовать Apache по какой-то причине, я получил бонусный совет:

  1. Отключить AllowOverride

    Настройка AllowOverride на None предотвращает много дискового ввода-вывода и

Joomla

  1. Не используйте режим FTP

    Хотя это не влияет на пользователей, читающих сайт, это замедлит некоторые операции, такие как установка расширения.

  2. Отключить неиспользуемые расширения

    Это особенно подходит для плагинов, многие из которых выполняются по каждому запросу. Отключение меню и компонентов в основном полезно при перечислении доступных расширений и типов меню. Также пройдите 5 минут, чтобы пройти через расширения, которые поставляются с ядром Joomla, и отключите те, которые вы не используете.

  3. Отключить Подготовку содержимого

    Если вы используете множество пользовательских модулей (mod_custom нестандартно, как в самозаписываемом), проверьте, можете ли вы отключить Подготовку содержимого в них. Это экономит некоторую обработку.

  4. Использовать кеширование

    Если вы серьезно относитесь к производительности, вы захотите включить кеширование. Особенно полезен для чтения тяжелых сайтов со многими анонимными пользователями. Записанные пользователи будут обходить большую часть кеша, если у вас их много, эффект будет не таким большим.

  5. Использовать альтернативный обработчик сеанса

    Используя альтернативный обработчик сеанса, вы можете освободить свою базу данных для более важных вещей. Я бы не рекомендовал файл (путано называемый «Нет» в настройках Joomla), поскольку это приведет к еще большему увеличению дискового ввода-вывода. Использование APC является потенциально быстрым, но увеличивает риск потери всех данных сеанса. Правильное среднее место - Memcache. Хотя для этого требуется дополнительный процесс, он более надежный, чем APC, и намного быстрее, чем хранение всех данных вбазы данных

  6. Держите свой сайт простым

    Вам действительно нужна кнопка Facebook? Как насчет этой симпатичной иконки, которую никто никогда не видит, потому что она частично скрыта за каким-то баннером? Чем меньше ваш сайт показывает, тем быстрее он будет. Также везде, где это возможно, используйте CSS3 вместо изображений.

Разное

  1. Установите значок

    Благодарим вас за решение, относящееся к браузерам Internet Explorer 4.0 к файлу, называемому favicon.ico, когда пользователь посещает ваш сайт. Если у вас его нет, это приводит к ненужному IO, поскольку 404 ответа не кэшируются. Либо укажите значок своего сайта с помощью метатега HTML или добавьте в корневой каталог файл с именем favicon.ico. Не хотите значка? Поместите прозрачный PNG размером 1x1 пиксель в этом месте. Обратите внимание, что расширение еще должно быть .ico.

  2. Оптимизация изображений

    Удивительно, какую экономию можно получить за счет оптимизации изображений, особенно файлов PNG. Для любой операционной системы есть множество инструментов, лично я использую ImageOptim , который доступен для OS X. Основные изображения Joomla уже оптимизированы, но идут в корыто ваши собственные изображения, особенно шаблоны, важны. Вы также можете проверить расширения, которые используете. Если они с открытым исходным кодом, почему бы вам не внести запрос на перенос, содержащий недавно оптимизированные изображения?

Расширенный

Если вы действительно хотите изо всех сил, подумайте о том, чтобы разместить Varnish перед своим сайтом. Он кэширует запросы на ваш сайт и, если возможно, обслуживает их из собственного кеша, никогда не попадая на Joomla. Это сложный инструмент, но с большой властью. Joomla не будет использовать расширенные функции, такие как Edge Side Includes (ESI), но ваш собственный код может.

ответил Rouven Weßling 23 AMpWed, 23 Apr 2014 02:19:00 +040019Wednesday 2014, 02:19:00
13

Одна БОЛЬШАЯ вещь, которую вы можете сделать, чтобы улучшить время отклика для вашего сайта, - это обновление настроек вашего модуля. Пользовательские модули (с помощью mod_custom) имеют возможность включить /отключить подготовку контента. Это позволяет запускать плагины контента в содержимом данных в вашем настраиваемом модуле. Он эффективен при правильном использовании, но он добавляет дополнительное время рендеринга к выходу модуля. Если вы на самом деле не используете плагин контента в своем пользовательском модульном контенте, лучше отключить его. Когда вы это сделаете, вы увидите уменьшение времени рендеринга модуля.

Снимок экрана с настройкой: введите описание изображения здесь

  

Примечание. Если мой ответ помог вам, нажмите на ссылку слева, чтобы принять ответ.

ответил Don Gilbert 22 PMpTue, 22 Apr 2014 22:29:15 +040029Tuesday 2014, 22:29:15
8

Я предполагаю, что вы запустили свой сайт с помощью скорости страницы Google, и вы действительно пытаетесь сократить время отклика страницы, то есть время, потраченное вашей разметкой для отправки в браузер.

Наиболее вероятными виновниками этого являются тяжелые запросы. Включите отладку и посмотрите в нижней части страницы, чтобы узнать, какие самые тяжелые запросы и удалить или уменьшить их. Вы также можете воспользоваться медленными журналами запросов MySQL.

Следующее, что вы можете посмотреть, - это кеширование. В зависимости от типа сайта у вас есть возможность консервативного или прогрессивного кэширования. Progressive следует использовать на сайтах, которые не имеют и связанных с ним функций.

ответил Ashwin Date 22 PMpTue, 22 Apr 2014 22:21:00 +040021Tuesday 2014, 22:21:00
6

То, что я знаю об этом, может помочь (большинство из них перечислены):

  1. Кэширование
  2. Сжатие (gzip ваши файлы css и js)
  3. Объединение файлов (все ваши css объединяются в один файл)
  4. Разгрузка изображений и файлов на CDN.

Я использовал комбинацию встроенного кеша Joomla (или даже APC, включенную на сервере), и плагинов, таких как плагин rockboster gzip или rocket theme. Я также использую плагин CDN nonumbers с учетной записью Amazon.

Это определенно помогает, но вы должны следить за своим сайтом и отключать кеш для компонентов, у которых есть проблемы. Мне пришлось обходить CiviCRM на нашем сайте, потому что он не играл с кэшированием. Joomla поставляется с плагином для кеш-контроля, который может справиться с этим.

ответил Brian Peat 22 PMpTue, 22 Apr 2014 22:22:56 +040022Tuesday 2014, 22:22:56
4

Вы также захотите посмотреть на сокращение локальных активов и правильное кэширование. Одна вещь, которую вы можете сделать, это использовать плагины CDN. Вот два, которые я бы рекомендовал:

'corePHP' jomCDN - https://www.corephp.com/joomla-products/jomcdn

NoNumbers CDN Для Joomla! - http://www.nonumber.nl/extensions/cdnforjoomla

Также, если ни одно из вышеизложенных вопросов не решит проблемы, которые могут возникнуть у вас более глубокие проблемы - возможно, внутри вашего шаблона, самого сервера или других вещей. Если это так, лучше всего нанять кого-то, чтобы выследить проблему и решить ее для вас.

ответил Steven Pignataro 22 PMpTue, 22 Apr 2014 22:16:47 +040016Tuesday 2014, 22:16:47
3

Вы также можете использовать этот код в файле .htaccess:

RewriteEngine On
RewriteCond %{HTTP_HOST}  ^www.your domain [nocase]
RewriteRule ^(.*)         http://your domain/$1 [last,redirect=301]
RewriteEngine on
<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript text/javascript
</ifmodule>
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 month"
</IfModule>
ответил معاملات فصلی 27 FebruaryEurope/MoscowbSat, 27 Feb 2016 11:27:12 +0300000000amSat, 27 Feb 2016 11:27:12 +030016 2016, 11:27:12
2

Я создал больше, чем сотни сайтов, использующих Joomla!

В большинстве случаев люди думают, что Joomla сильно работает на сервере, но, согласно анализу, сделанному мной, самая важная вещь, чтобы сохранить ваш сайт FAST, - это ОПТИМИЗАЦИЯ ИЗОБРАЖЕНИЙ и JS /CSS.

Не используйте редакторы Joomla, например JCE, чтобы просто изменить размер изображения. Используйте графические редакторы, такие как фотошоп или любой другой редактор, чтобы изменить размер ваших изображений до необходимого размера!

Используйте инструменты сжатия JS /CSS.

Мы всегда используем Pingdom Tools для анализа скорости веб-сайта, и мы используем встроенную функцию T3 Framework для оптимизации JS /CSS!

ответил Gev Balyan 22 PMpTue, 22 Apr 2014 22:16:25 +040016Tuesday 2014, 22:16:25
1

Вы удалили неиспользуемые плагины? Joomla должен загружать и обрабатывать каждый опубликованный плагин для событий, инициированных в запросе.

Вы должны понимать расширения, которые вы установили, и как они взаимодействуют с Joomla!

Многие расширения устанавливают плагины, которые управляют действиями контента, системы или пользователя, чтобы инициировать функции кода. Некоторые из них могут быть излишними.

Я знаю, что k2 устанавливает много плагинов, которые отвечают на события, связанные с языком, которые не дают реального выхода для сайтов с одним языком. Unpublishing эти плагины могут сократить время обработки.

ответил Joomsavvy 22 PMpTue, 22 Apr 2014 22:11:53 +040011Tuesday 2014, 22:11:53
1

Улучшить ресурсы плана сервера /веб-хостинга

Возможно, не тот ответ, который ищет OP, но стоит упомянуть, если он не очевиден для всех (и другие ответы еще не упоминались): улучшите ресурсы сервера, такие как память, процессор и скорость диска.

Если вы используете общий веб-хостинг, переход от плана «экономика» к «бизнес-плану» или другой более продвинутый план может улучшить ресурсы сервера, доступные вашему веб-сайту, и сократить время отклика сервера. Также может помочь переезд в более качественную хостинговую компанию (например, с менее переполненными общедоступными серверами веб-хостинга).

Лучший план хостинга также может дать вам доступ к улучшениям производительности, которые не включены в основной план хостинга. Например, планы «GrowBig» и «GoGeek» SiteGround включают динамический кеш, который значительно сокращает время отклика сервера. Опция динамического кеша недоступна в плане «Запуск».

ответил Neil Robertson 12 FebruaryEurope/MoscowbSun, 12 Feb 2017 09:58:56 +0300000000amSun, 12 Feb 2017 09:58:56 +030017 2017, 09:58:56

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132