Konstantin Svist | 1 Oct 08:00
Picon

cache in ram

Доброе время суток!

Существует ли возможность соединить кэширование с,
например, memcached 
чтобы хранить страницы в памяти вместо диска?
У меня много малого размера ответов (<1k), а файловая
система не держит 
- с proxy_cache 500k файлов после 10 минут :(

Думал может использовать /dev/shm но не пойдёт -- там 10k inodes 
максимум, да и всё равно будет на диск писать

Пока у меня сидит система на Varnish, но он падает иногда,
не знаю точно 
от чего. Да и извращение это -- запрос приходит к nginx
(routing), затем 
идёт в varnish (caching), потом опять nginx (routing/balancing к бэкендам)

Кажется можно сделать малой кровью -- чтение из memcached
уже есть, 
expiration у него свой... только писать в него осталось :)

Спасибо,
Костя

Picon

Re: cache in ram

есть модуль ngx_memcached который позволяет взять из кеша напрямую
есть разновидности этого модуля 

Picon
Favicon

nginx + spawn-fcgi виснут php воркеры

Например. Есть скрипт 1.php , который прежде чем выдаст
ответ, 
запрашивает инфу у 2.php (через curl)
запущено 50 обработчика php
Если обратится к 1.php в 51 и более паралельных запросов,
все 
обработчики полностью виснут. После этого
приходится убивать php при помощи
killall -9 php-cgi
иначе не убивается
пока просто отделили под 2.php несколько обработчиков
на другом порту
хотя и сейчас местами наблюдаются подвисания, но
обычно отвисает сам
Проблема похоже в php. Может кто-нибудь уже решил её?
Кстати пока разбирался с этим замерял
производительность связки на 
тестовой машине (средний домашний двухядерник).
eaccelerator включён
Скрипт с обычным phpinfo(); обрабатывается примерно 430
раз в секунду
Рабочие скрипты не больше 100 в секунду. Причём,
касательно этих 100, 
такое ощущение, что где-то, что-то нужно "подкрутить",
т.к. общая 
загрузка системы во время теста 65-70%
Причём пробовал apache 1.3.x + mod_php и получил примерно такую
же 
производительность php (ниже процентов на 10).
Действительно что-то нужно донастроить, или это
(Continue reading)

Really Big Bug | 1 Oct 08:47
Picon
Favicon

Re: cache in ram

Вариант:
Можно сделать чтобы запрос которого нету в memcache
перенаправлялся 
скрипту который отдаст файл, а также поместит его в кеш.
Наверное можно даже воспользоватся встроенным perl.

Только чтение из memcache в nginx имеет ограничение в виде
невозможности 
использования Last-Modified/etc заголовков. Возможно есть
какой либо 
способ обойти такое поведение?

Konstantin Svist wrote:
> Доброе время суток!
> 
> Существует ли возможность соединить кэширование с,
например, memcached 
> чтобы хранить страницы в памяти вместо диска?
> У меня много малого размера ответов (<1k), а файловая
система не держит 
> - с proxy_cache 500k файлов после 10 минут :(
> 
> Думал может использовать /dev/shm но не пойдёт -- там 10k inodes 
> максимум, да и всё равно будет на диск писать
> 
> Пока у меня сидит система на Varnish, но он падает иногда,
не знаю точно 
> от чего. Да и извращение это -- запрос приходит к nginx
(routing), затем 
> идёт в varnish (caching), потом опять nginx (routing/balancing к бэкендам)
(Continue reading)

Konstantin Svist | 1 Oct 09:00
Picon

Re: cache in ram

On 09/30/2009 11:13 PM, Alexandre Kalendarev wrote:
> есть модуль ngx_memcached который позволяет взять из кеша напрямую
> есть разновидности этого модуля
>
>    

так я хочу чтобы сам nginx туда писал в режиме proxy_cache :)
Иначе нужно чтобы бэкенды знали о кэшировании и сами
писали туда свои ответы

SaveFrom.net | 1 Oct 09:45
Picon

Re: cache in ram

Поддерживаю. функционал кэширования в RAM весьма актуален.

1 октября 2009 г. 11:00 пользователь Konstantin Svist <fry.kun <at> gmail.com> написал:
On 09/30/2009 11:13 PM, Alexandre Kalendarev wrote:
есть модуль ngx_memcached который позволяет взять из кеша напрямую
есть разновидности этого модуля

 

так я хочу чтобы сам nginx туда писал в режиме proxy_cache :)
Иначе нужно чтобы бэкенды знали о кэшировании и сами писали туда свои ответы




Picon

Re: cache in ram

SaveFrom.net пишет:
> Поддерживаю. функционал кэширования в RAM весьма актуален.
> 
> 1 октября 2009 г. 11:00 пользователь Konstantin Svist
> <fry.kun@...>написал:
> 
>> On 09/30/2009 11:13 PM, Alexandre Kalendarev wrote:
>>
>>> есть модуль ngx_memcached который позволяет взять из кеша напрямую
>>> есть разновидности этого модуля
>>>
>>>
>>>
>> так я хочу чтобы сам nginx туда писал в режиме proxy_cache :)
>> Иначе нужно чтобы бэкенды знали о кэшировании и сами
писали туда свои
>> ответы
>>
>>
>>
>>

А мне кажется - пусть остается на совести ОС. Объекты
кеша, к которым 
часто обращаются будут находиться в кеше и,
фактически, отдаваться из 
памяти.

Anton Yuzhaninov | 1 Oct 10:25
Picon
Favicon
Gravatar

Re: cache in ram

Лазовский Вадим wrote:
> 
> А мне кажется - пусть остается на совести ОС. Объекты
кеша, к которым 
> часто обращаются будут находиться в кеше и,
фактически, отдаваться из 
> памяти.

Что касается чтения да, ОС неплохо кэширует и снижает
нагрузку на диск, 
но можно упереться в предел I/O ops per second на запись новых
объектов. 
В этом случае кэш в памяти был бы полезен.

--

-- 
Anton Yuzhaninov

Sergey A. Kobzar | 1 Oct 10:36
Picon

Re[2]: cache in ram

Thursday, October 1, 2009, 11:25:43 AM, Anton wrote:

> Лазовский Вадим wrote:
>> 
>> А мне кажется - пусть остается на совести ОС. Объекты
кеша, к которым 
>> часто обращаются будут находиться в кеше и,
фактически, отдаваться из 
>> памяти.

> Что касается чтения да, ОС неплохо кэширует и снижает
нагрузку на диск,
> но можно упереться в предел I/O ops per second на запись новых объектов.
> В этом случае кэш в памяти был бы полезен.

Может не в тему...

Наткнулся на "The nginx HTTP redis module for caching with redis"

http://forum.nginx.org/read.php?2,8460,8460

Redis'у можно сказать хранить объекты только в памяти или
синхронизировать на диск.

Кто-ть пробовал? Как в сравнении с memcached работает?

--

-- 
Sergey

Picon

Re: cache in ram

Файловая система в памяти (tmpfs и иже с ними) не подойдет?

1 октября 2009 г. 12:25 пользователь Anton Yuzhaninov
<citrin <at> citrin.ru> написал:
> Лазовский Вадим wrote:
>>
>> А мне кажется - пусть остается на совести ОС. Объекты
кеша, к которым
>> часто обращаются будут находиться в кеше и,
фактически, отдаваться из
>> памяти.
>
> Что касается чтения да, ОС неплохо кэширует и снижает
нагрузку на диск, но
> можно упереться в предел I/O ops per second на запись новых
объектов. В этом
> случае кэш в памяти был бы полезен.
>
> --
> Anton Yuzhaninov
>
>

Gmane