저작권 표시: 마음대로 재인쇄할 수 있습니다. 재인쇄 시 반드시 해당 기사의 원본 출처와 저자 정보 및 본 저작권 표시를 하이퍼링크 형태로 표시해 주시기 바랍니다.
http://www.chedong.com/blog/archives/001431.html
시도해 보세요:
PHPmemcache_set() 함수의 MEMCACHE_COMPRESSED 압축 옵션이 활성화되고 memcache_get()은 후속 읽기 중에 압축된 캐시 개체의 압축을 자동으로 풀 수 있습니다.
효과:
테스트 결과, 현재 블로그 버스 애플리케이션의 경우 압축을 활성화한 후 동일한 용량(2G)에 저장된 개체 수가 약 2배 증가했으며, 캐시 적중률도 약 50%에서 약 60%로 증가했습니다. 적중률을 더 높이려면 여전히 하드웨어 투자가 필요합니다. 메모리를 2배 추가한 후 마침내 캐시 적중률이 90%로 증가했습니다.
전제 조건 0: 메모리 캐시가 유용하고 적중률을 개선할 가치가 있습니다.
성능을 60%에서 90%로 높이거나 90%에서 95%로 높이는 것은 히트 후 성능 향상이 가치 있는지에 따라 다릅니다.
전제 1: MemCached-tool을 사용하여 용량 통계를 확인합니다. memcached가 꽉 찼는지 확인하려면 이미 꽉 찬 것이 아닙니다. MemCached가 완전히 실행 중일 때 공간이 가득 차지 않은 경우 압축을 활성화하는 것은 의미가 없습니다. 또한 MemCached가 가득 차지 않은 경우 해당 MemCached의 용량을 줄여 다른 메모리를 확보하는 것이 가장 좋습니다. 전제
2: 압축 비율 캐시된 데이터는 실제로 수백 바이트보다 클 수 있습니다. 모든 키-값 쌍이 100바이트보다 작은 경우 압축으로 인해 실제로 확장이 발생할 수 있습니다. 캐시 객체의 크기는 Memcached에서 고정 크기 블록에 저장되므로 최소 크기는 88B입니다. 따라서 너무 작은 데이터로 인한 압축 및 확장은
프런트엔드 애플리케이션의 CPU 손실에 큰 문제가 되지 않습니다.
데이터 추가 압축으로 인한 CPU 손실은 캐시 적중률 증가 및 백그라운드 데이터베이스 액세스 감소로 인한 성능 향상보다 훨씬 낮습니다. 이는 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 B 324647 초 145 863765 예
4 224 B 347049 s 52 243412 예
5 280 B 332911 s 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 B 298607 초 74 88947 예
11 1.1kB 276463s 70 66919 예
12 1.3kB 279819s 79 60198 예
13 1.7kB 293690초 97 59073 예
14 2.1kB 304436초 116 56492 예
15 2.6kB 298020초 102 39576 예
16 3.3kB 324546초 100 31000 예
17 4.1kB 321757s 97 24056 예
18 5.2kB 320132 s 91 18018 예
19 6.4kB 332232s 89 14062 예
20 8.1kB 330696 s 81 10287 예
21 10.1kB 329582s 76 7676 예
22 12.6kB 337278s 72 5832 예
23 15.8kB 348626초 66 4224 예
24 19.7kB 345881초 56 2856 예
25 24.6kB 345825s 44 1804 예
26 30.8kB 333460초 31 1023 예
27 38.5kB 335782 s 22 572 예
28 48.1kB 302109s 17 357 예
29 60.2kB 358674s 18 306 예
30 75.2kB 396573s 17 221 예
31 94.0kB 431605 s 11 110 예
32 117.5kB 418652 s 7 56 예
33 146.9kB 408422초 3 17 아니요
34 183.6kB 277529초 2 7 아니요
35 229.5kB 139156초 1 3 아니요
36 286.9kB 232221초 1 1 아니요
37 358.6kB 1059초 3 6 예