memcached

Ярослав

Новичок
По умолчанию memcached может держать обьекты максимум до 1МБ.
PHP:
-I  Override the size of each slab page in bytes. In mundane words, 
it adjusts the maximum item size that memcached will accept.  You can use the suffixes K and M 
to  specify  the size as well, so use 2000000 or 2000K or 2M if you want a maximum size of 2 MB per object. 
It is not recommended to raise this limit above 1 MB due just to performance reasons.  
The default value is 1 MB.
Почему не рекомендовано больше 1М? Где тут теряется производительность?
Если у меня будет 3-5 обьектов кеша на 2-3 мегабайта, чем это может грозить? Запросы к этим кешам будут идти по 200 тис. в сутки.

Что лучше выбрать для кеширования 2-3 мегабайта в памяти?
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Я если честно, слабо представляю что можно кешировать в цельном куске в 3мб, картинку ты туда суешь, чтоли?
 

tony2001

TeaM PHPClub
>Где тут теряеться производительность?

В перегоне по сети мегабайтов.
 

Ярослав

Новичок
флоппик
Это неважно для данного вопроса, предположим что картинку :)

tony2001
Мемкеш локально.
Меня интересует где может терятся производительность при получении из кеша.

Получаеться что в данном случаи, если связь только приложения (php) и memcached на производительность это не повлияет.
 

tony2001

TeaM PHPClub
Весь смысл в мемкеше в том, чтобы было M воркеров и N кэшей, которые используются всеми воркерами.
Тогда каждый занимается своим делом - воркеры обрабатывают запросы, мемкэши кэшируют и отдают данные.
А один воркер и один кэш, которые отжирает память у единственного воркера, это велосипед с квадратными колёсами и прямотоком, "потому что на Хабре сказали, что это круто".
 

Ярослав

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

Подскажите еще хороший источник, где можно более детальней познакомиться с memcached.
 

Ярослав

Новичок
НО ЗАЧЕМ?

Выкинь. И кэшируй в файловой системе.
На самом деле, сейчас так и есть.
Просто диски загружены (busy 40-90% постоянно), вот и хочу поместить в память, чтобы хоть немного диски освободить.
Думаете, я изобретаю велосипед с квадратными колёсами и прямотоком?

Просто не знаю как еще разгрузить диски :(

Там стоит рейд 1 (2 жостких диска) и пока поменять не получиться :(
 

Ярослав

Новичок
fixxxer
Только что еще мысль пришла...
Считаете, что когда с диска, то используеться кэш ОС?
 

fixxxer

К.О.
Партнер клуба
fixxxer
Только что еще мысль пришла...
Считаете, что когда с диска, то используеться кэш ОС?
При чем тут, что я считаю ) google 'linux vfs cache'

Это не то, что велосипед, это инвалидная коляска вместо реактивного самолета. Столь же разумно было бы класть локальные файлы в mysql blob.

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

Ярослав

Новичок
fixxxer
Тут Вы абсолютно правы.

Только что проделал тест.
Если выборку делать из мемкеша для
пара десятков байт - 0,0001с
если уже 2-3 мегабайта - 0.04 - 0.05с

Разница очень большая :(
Еще проверил что с диска действительно быстрее и намного. Может это потому, что из кеша я все это в переменную, а когда из диска, то сразу на печать через echo fread. Тут еще нужно будет разобраться.

fixxxer
tony2001
Большое спасибо за действительно полезные советы!


Mr_Max
Вот честно, сейчас прочту. Уже не раз стыкался с этим.
На украинском было бы намного удобней ;)
 

fixxxer

К.О.
Партнер клуба
Может это потому, что из кеша я все это в переменную, а когда из диска, то сразу на печать через echo fread. Тут еще нужно будет разобраться.
Да, тут действительно надо разобраться, как отдавать файлы способом раз в 100500 эффективнее чем 'echo fread'.

Судя только по этому, уже становится достаточно очевидно, что если все переделать по нормальному то проблема исчезнет сама собой.
 
Сверху