Заявление об авторских правах: Вы можете перепечатывать по своему желанию. При перепечатке обязательно указывайте первоисточник и информацию об авторе статьи, а также данное заявление об авторских правах в виде гиперссылки.
http://www.chedong.com/blog/archives/001431.html
Попробуйте:
Опция сжатия MEMCACHE_COMPRESSED в функции PHPmemcache_set() включена, и memcache_get() может автоматически распаковывать сжатый объект кэша во время последующих чтений.
Эффект:
После тестирования для текущего приложения Blog Bus после включения сжатия количество объектов, хранящихся в той же емкости (2G), увеличилось примерно вдвое, а частота попадания в кэш увеличилась примерно с 50% до примерно 60%. Инвестиции в оборудование по-прежнему необходимы для дальнейшего увеличения количества попаданий. После двукратного увеличения памяти процент попаданий в кэш наконец увеличился до 90%.
Предварительное условие 0: Кэш-память полезна, и показатель попадания стоит улучшить;
Стоит ли увеличивать производительность с 60% до 90% или с 90% до 95%, зависит от того, стоит ли улучшение производительности после попадания.
Предпосылка 1: MemCached заполнен. Используйте memcached-tool для проверки статистики емкости. memcached, чтобы проверить, заполнен ли memcached. Это не значит, что он уже заполнен. Если пространство MemCached не заполнено при полной работе, включать сжатие бессмысленно. Более того: если вы обнаружите, что MemCached не заполнен, лучше всего уменьшить емкость соответствующего MemCached, чтобы освободить больше памяти для других; услуги для кэширования.
Предпосылка 2: Степень сжатия. Размер кэшированных данных действительно может превышать несколько сотен байт. Если все они представляют собой пары ключ-значение размером менее 100 байт, сжатие может фактически привести к расширению. Поскольку размер объектов кэша в Memcached хранится в блоках фиксированного размера, минимальный размер составляет 88 байт. Таким образом, сжатие и расширение, вызванное слишком маленьким объемом данных, не является большой проблемой
для внешнего приложения
;
Потери ЦП при дополнительном сжатии данных намного ниже, чем повышение производительности, вызванное увеличением скорости попадания в кэш и уменьшением фонового доступа к базе данных. Это похоже на сжатие http gzip/deflate. Сжатые данные обычно составляют около 30%. исходный размер данных, экономия 70 % потребления производительности при передаче, будет больше, чем потеря производительности, вызванная сжатием файла,
следующее распределение блоков данных MemCached после включения сжатия:
# Item_Size Max_age 1MB_pages Количество заполнено?
1 104 B 342694 s 60 604918 да<== Исходное минимальное мажоритарное распределение кажется немного завышенным и составляет 88 B.
2 136 B 344213 с 39 300690 да
3 176 Б 324647 с 145 863765 да
4 224 B 347049 с 52 243412 да
5 280 Б 332911 с 47 175968 да
6 352 B 257080 с 114 339491 да
7 440 B 330976 с 39 92934 да
8 552 B 310225 с 51 96849 да
9 696 B 305251 с 68 102407 да
10 872 Б 298607 с 74 88947 да
11 1,1 кБ 276463 с 70 66919 да
12 1,3 кБ 279819 с 79 60198 да
13 1,7 кБ 293690 с 97 59073 да
14 2,1 кБ 304436 с 116 56492 да
15 2,6 кБ 298020 с 102 39576 да
16 3,3 кБ 324546 с 100 31000 да
17 4,1 кБ 321757 с 97 24056 да
18 5,2 кБ 320132 с 91 18018 да
19 6,4 кБ 332232 с 89 14062 да
20 8,1 кБ 330696 с 81 10287 да
21 10,1 кБ 329582 с 76 7676 да
22 12,6 кБ 337278 с 72 5832 да
23 15,8 кБ 348626 с 66 4224 да
24 19,7 кБ 345881 с 56 2856 да
25 24,6 кБ 345825 с 44 1804 да
26 30,8 кБ 333460 с 31 1023 да
27 38,5 КБ 335782 с 22 572 да
28 48,1 кБ 302109 с 17 357 да
29 60,2 кБ 358674 с 18 306 да
30 75,2 кБ 396573 с 17 221 да
31 94,0 КБ 431605 с 11 110 да
32 117,5 КБ 418652 с 7 56 да
33 146,9 КБ 408422 с 3 17 нет
34 183,6 кБ 277529 с 2 7 нет
35 229,5 КБ 139156 с 1 3 нет
36 286,9 кБ 232221 с 1 1 нет
37 358,6 кБ 1059 с 3 6 да