TYPO3/Optimize performance/ru

Не сбрасывайте дисковый кеш при каждом обновлении
При использовании механизма хранения InnoDB для таблиц TYPO3, настройка по умолчанию innodb_flush_log_at_trx_commit может привести к значительному понижению производительности. Это происходит ввиду того, что TYPO записывает огромное количество информации в таблицы кеширования, и каждая команда INSERT/DELETE/UPDATE следует за fsync, сбрасывающей грязные страницы на жёсткий диск, что очень медленно.

Если установить значение innodb_flush_log_at_trx_commit на что-то отличное от значения по умолчанию ("1"), то fsync будет вызвана лишь каждую секунду.

innodb_flush_log_at_trx_commit = 2

Замечание: недостатком этого является то, что система становится более не ACID совместимая и можно потерять все записи за последние секунды при сбое сервера. Значение "2" немного более безопасно, чем "0", так как при этом вы потеряете лишь последние записи при сбоях в работе программного обеспечения или железа, а не при смерти MySQL демона.

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

Для этого можно создать ещё один виртуальный хост на веб сервере, который использует поддомен, вроде "static.example.com". А корень его должен указывать на ту же директорию, что и основной виртуальный хост (в данном случае — example.com), для упрощения обслуживания. Иначе придётся следить за синхронизацией файлов в обоих местах. Если интернет соединение с покупателями близкое и быстрое, а сервер способен держать нагрузку, то это решение лучшее, особенно если есть возможность использовать кеширование файлов вроде Squid или Varnish.

Другая возможность — использовать домен из сети доставки контента (content delivery network — CDN) вроде Amazon Cloudfront. Обычно подобные серверы можно настраивать для получения статических файлов по первому запросу с вашего хоста и брать их затем из кешей. Преимущество CDN перед поддоменами на основном сервере в распределении нагрузки между несколькими серверами и доставки содержимого с серверов, расположенных ближе к посетителям сайта. Оба этих решения могут сильно улучшить скорость сайта.

В обоих случаях придётся, настроить расширение Arcavias TYPO3 для создания ссылок на картинки товаров с другого домена. Это можно сделать при помощи следующего TypoScript кода:

plugin.tx_arcavias.settings.client.html.common.content.baseurl = https://static.example.com/uploads/tx_arcavias/

Можно также добавить настройку для получения файлов CSS и Javascript со второго домена:

page.includeCSS.tx_arcavias = https://static.example.com/typo3conf/ext/arcavias/Resources/Public/html/css/arcavias.css page.includeJSlibs.jquery = https://static.example.com/typo3conf/ext/arcavias/Resources/Public/html/js/jquery.min.js page.includeJSlibs.jquery-migrate = https://static.example.com/typo3conf/ext/arcavias/Resources/Public/html/js/jquery-migrate.js page.includeJSlibs.jquery-ui = https://static.example.com/typo3conf/ext/arcavias/Resources/Public/html/js/jquery-ui.custom.min.js page.includeJS.tx_arcavias = https://static.example.com/typo3conf/ext/arcavias/Resources/Public/html/js/arcavias.js page.includeCSS.tx_arcavias.external = 1 page.includeJSlibs.jquery.external = 1 page.includeJSlibs.jquery-migrate.external = 1 page.includeJSlibs.jquery-ui.external = 1 page.includeJS.tx_arcavias.external = 1

Смотрите также

 * Performance optimizations for administrators