Cache, ускорение работы сайта

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Аватара пользователя
Elfer
Сообщения: 132
Зарегистрирован: 2012.06.07, 16:09
Откуда: Беларусь, Лида
Контактная информация:

Cache, ускорение работы сайта

Сообщение Elfer »

Добрый день! Арендую сервер, стоит PHP 7.0, Yii 1.1.17, 1 сайт с посещалкой в 6000 пользователей в сутки. Недавно лег сервер, посмотрел по логам, перед тем как лег, сервер набрал большую очередь запросов и не справился. А именно не справился при чтении кэша. В файле config.php кэш настроен как файловый:

Код: Выделить всё

'cache'=>array(
    'class'=>'CFileCache',
),
В коде подключаю его так:

Код: Выделить всё

$items = Yii::app()->cache->get('params');
Это самое первое обращение к кэшу в коде, остальные обращения идут следующими и на них не так много тратится время, как на первое обращение. В нормальном режиме тратится на его чтение 0.011 сек .. 0.032 сек. В момент, когда сервер ложился, время занимало более 4 сек и с каждым запросом увеличивалось.
Этот кэш используется при каждом открытии страницы, соответственно бывают случайные моменты, когда в секунду несколько человек открывают страницы и нагружают тем самым сервер чтением этого кэша. Кеш 'params' формируется очень редко, может раз в месяц, при формировании не ставлю время, т.е. по идее кэш выставляется навсегда. Остальное время происходит только чтение.

Файл, к которому обращается кэш - небольшой по размеру 551 байт. Почему захлёбывается от этого сервер? Проверяю постоянно нагрузку, ищу узкие места, подробное профилирование настроил на сайте. И часто замечаю в этом месте повышенную нагрузку.

Может кто-то сталкивался с подобным, что посоветуете?
Последний раз редактировалось Elfer 2016.12.02, 17:46, всего редактировалось 1 раз.
Приколы: юмор, анекдоты - Zasmeshi.Ru сайт на Yii, великие возможности фреймворка.
Аватара пользователя
Elfer
Сообщения: 132
Зарегистрирован: 2012.06.07, 16:09
Откуда: Беларусь, Лида
Контактная информация:

Re: Cache, ускорение работы сайта

Сообщение Elfer »

Т.к. кэш часто юзается, думаю использовать механизм хранения кэша в ОЗУ. Я так понимаю этим занимается MemCache. На странице кэширование данных в самом низу написано:
максимальный размер одной единицы данных равен одному мегабайту
У меня в кэше файлах есть файл размером 1.5 Мб и будет со временем расти. Возможно до 5 Мб. Как в данном случае будет вести себя Yii? Не будет для него создавать кэш?
Приколы: юмор, анекдоты - Zasmeshi.Ru сайт на Yii, великие возможности фреймворка.
Аватара пользователя
Elfer
Сообщения: 132
Зарегистрирован: 2012.06.07, 16:09
Откуда: Беларусь, Лида
Контактная информация:

Re: Cache, ускорение работы сайта

Сообщение Elfer »

Посоветуйте из всех типов кэшей, с которыми работает Yii, самый быстрый.
Приколы: юмор, анекдоты - Zasmeshi.Ru сайт на Yii, великие возможности фреймворка.
chesar
Сообщения: 514
Зарегистрирован: 2013.04.10, 17:49

Re: Cache, ускорение работы сайта

Сообщение chesar »

Файловый кэш - плохой выбор. Медленно и вообще диски лучше как можно меньше трогать.
Увеличить размер памяти под данные всегда можно увеличить в настройках. У мемкеша это вроде MAXITEMSIZE
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Cache, ускорение работы сайта

Сообщение zelenin »

мемкэш - да, один из самых быстрых.
Аватара пользователя
SiZE
Сообщения: 2813
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Cache, ускорение работы сайта

Сообщение SiZE »

А сколько файлов в папке runtime/cache? Мне кажется странным такое поведением на 6000 в сутки. Может там конечно какое-то ограничение на скорость и количество обращений к диску?
Аватара пользователя
Elfer
Сообщения: 132
Зарегистрирован: 2012.06.07, 16:09
Откуда: Беларусь, Лида
Контактная информация:

Re: Cache, ускорение работы сайта

Сообщение Elfer »

В папке runtime/cache 71 файл, общим размером 2.1 Мб. Я не знаю какое там кол-во обращений к диску и не знаю как посмотреть.
Приколы: юмор, анекдоты - Zasmeshi.Ru сайт на Yii, великие возможности фреймворка.
Аватара пользователя
Elfer
Сообщения: 132
Зарегистрирован: 2012.06.07, 16:09
Откуда: Беларусь, Лида
Контактная информация:

Re: Cache, ускорение работы сайта

Сообщение Elfer »

CDbCache у меня изначально была. На БД ложится и так большая нагрузка. Из-за частых запросов к некоторым таблицам ложится иногда сервер. Вот решил облегчить БД и перенести нагрузку на диск (CFileCache). Но видимо диск тоже не любит нагрузку. Придётся перенести эту нагрузку на ОЗУ.
В книге рецептов Sam Dark'а написано, что APC самый быстрый кеш, быстрее даже, чем MemCache. Но насколько я знаю в PHP 5.5 и выше APC заменен на OpCache. А у меня вообще PHP 7.0.
Приколы: юмор, анекдоты - Zasmeshi.Ru сайт на Yii, великие возможности фреймворка.
Аватара пользователя
Elfer
Сообщения: 132
Зарегистрирован: 2012.06.07, 16:09
Откуда: Беларусь, Лида
Контактная информация:

Re: Cache, ускорение работы сайта

Сообщение Elfer »

zelenin писал(а):мемкэш - да, один из самых быстрых.
Откуда такая информация?
Приколы: юмор, анекдоты - Zasmeshi.Ru сайт на Yii, великие возможности фреймворка.
Аватара пользователя
SiZE
Сообщения: 2813
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Cache, ускорение работы сайта

Сообщение SiZE »

Elfer писал(а):Вот решил облегчить БД и перенести нагрузку на диск (CFileCache)
если база на одном диске с файловым кешем, то на диск нагрузки меньше не будет.
Аватара пользователя
SiZE
Сообщения: 2813
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Cache, ускорение работы сайта

Сообщение SiZE »

Elfer писал(а):
zelenin писал(а):мемкэш - да, один из самых быстрых.
Откуда такая информация?
Так "один из". APC тоже достаточно быстрый был. По поводу поддержки вроде все понятно http://php.net/manual/en/intro.apc.php
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Cache, ускорение работы сайта

Сообщение zelenin »

Elfer писал(а):CDbCache у меня изначально была. На БД ложится и так большая нагрузка. Из-за частых запросов к некоторым таблицам ложится иногда сервер. Вот решил облегчить БД и перенести нагрузку на диск (CFileCache). Но видимо диск тоже не любит нагрузку. Придётся перенести эту нагрузку на ОЗУ.
В книге рецептов Sam Dark'а написано, что APC самый быстрый кеш, быстрее даже, чем MemCache. Но насколько я знаю в PHP 5.5 и выше APC заменен на OpCache. А у меня вообще PHP 7.0.
opcache - это не кэш в том понимании, в котором мы обсуждаем. Включенный опкеш (компилирование php-кода в байт-код) работает параллельно кэшированию данных. И он действительно ускоряет php-код.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Cache, ускорение работы сайта

Сообщение zelenin »

Elfer писал(а):
zelenin писал(а):мемкэш - да, один из самых быстрых.
Откуда такая информация?
из опыта и принципов работы.
Аватара пользователя
Elfer
Сообщения: 132
Зарегистрирован: 2012.06.07, 16:09
Откуда: Беларусь, Лида
Контактная информация:

Re: Cache, ускорение работы сайта

Сообщение Elfer »

Просто помимо MemCache есть еще подобные методы кэширования:
- CApcCache
- CXCache
- CEAcceleratorCache
- CRedisCache

Zelenin, т.е. согласно вашим словам, MemCache быстрее этих способом кэширования? Тестировали их? Желательно на PHP 7
Я просто хочу сразу определиться с хорошей Cache системой и перенастроить под нее. Чтобы по несколько раз не менять.
Приколы: юмор, анекдоты - Zasmeshi.Ru сайт на Yii, великие возможности фреймворка.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Cache, ускорение работы сайта

Сообщение zelenin »

Elfer писал(а):Просто помимо MemCache есть еще подобные методы кэширования:
- CApcCache
- CXCache
- CEAcceleratorCache
это все было актуально во времена yii1
Elfer писал(а):Тестировали их? Желательно на PHP 7
не уверен, что оно вообще под пхп7 есть.
Elfer писал(а):Я просто хочу сразу определиться с хорошей Cache системой и перя уенастроить под нее. Чтобы по несколько раз не менять.
кроме редиса можете ничего не рассматривать из выше перечисленного. потестируйте его вместе с мемкэшем. или почитайте готовые обзоры
https://www.google.ru/search?client=ubu ... 43EYNr4gCA
Аватара пользователя
Elfer
Сообщения: 132
Зарегистрирован: 2012.06.07, 16:09
Откуда: Беларусь, Лида
Контактная информация:

Re: Cache, ускорение работы сайта

Сообщение Elfer »

это все было актуально во времена yii1
Так я и использую Yii 1. А точнее Yii 1.1.17
Приколы: юмор, анекдоты - Zasmeshi.Ru сайт на Yii, великие возможности фреймворка.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Cache, ускорение работы сайта

Сообщение zelenin »

Elfer писал(а):
это все было актуально во времена yii1
Так я и использую Yii 1. А точнее Yii 1.1.17
"времена yii1" - это временной период, а не инструменты, которые вы используете.
Ответить