Copyright-Erklärung: Sie können nach Belieben nachdrucken. Bitte geben Sie beim Nachdruck unbedingt die Originalquelle und die Autoreninformationen des Artikels sowie diese Copyright-Erklärung in Form eines Hyperlinks an.
http://www.chedong.com/blog/archives/001431.html
Versuchen Sie:
Die Komprimierungsoption MEMCACHE_COMPRESSED in der Funktion PHPmemcache_set() ist aktiviert und memcache_get() kann das komprimierte Cache-Objekt bei nachfolgenden Lesevorgängen automatisch dekomprimieren.
Wirkung:
Nach dem Testen hat sich für die aktuelle Anwendung von Blog Bus nach Aktivierung der Komprimierung die Anzahl der in derselben Kapazität (2G) gespeicherten Objekte ungefähr verdoppelt und die Cache-Trefferquote ist von etwa 50 % auf etwa 60 % gestiegen. Um die Trefferquote weiter zu erhöhen, sind noch Hardware-Investitionen erforderlich. Nach der Erweiterung des Speichers wurde die Cache-Trefferquote schließlich auf 90 % erhöht.
Voraussetzung 0: Der Speicher-Cache ist nützlich und die Trefferquote lohnt sich.
Ob es sich lohnt, die Leistung von 60 % auf 90 % oder von 90 % auf 95 % zu steigern, hängt davon ab, ob sich die Leistungsverbesserung nach dem Treffer lohnt.
Prämisse 1: MemCached ist voll, um die Kapazitätsstatistiken zu überprüfen memcached, um zu sehen, ob memcached voll ist. Es ist nicht so, dass es bereits voll ist. Wenn der Speicherplatz von MemCached nicht voll ist, wenn es vollständig ausgeführt wird, ist es sinnlos, die Komprimierung zu aktivieren. Außerdem: Wenn Sie feststellen, dass MemCached nicht voll ist, reduzieren Sie am besten die Kapazität des entsprechenden MemCached, um mehr Speicher für andere freizugeben Zu speichernde Dienste;
Prämisse 2: Komprimierungsverhältnis Die zwischengespeicherten Daten können tatsächlich größer als ein paar hundert Bytes sein. Wenn es sich bei allen um Schlüssel-Wert-Paare handelt, die kleiner als 100 Bytes sind, kann die Komprimierung tatsächlich zu einer Erweiterung führen. Da die Größe von Cache-Objekten in Memcached in Blöcken fester Größe gespeichert wird, beträgt die Mindestgröße 88 B. Daher stellt die durch zu kleine Daten verursachte Komprimierung und Erweiterung kein großes Problem für
den CPU-Verlust der Front-End-Anwendung dar:
Der CPU-Verlust durch die zusätzliche Komprimierung von Daten ist weitaus geringer als die Leistungsverbesserung, die durch die Erhöhung der Cache-Trefferrate und die Reduzierung des Datenbankzugriffs im Hintergrund erzielt wird. Er ähnelt der gzip/deflate-Komprimierung von http Die ursprüngliche Datengröße, wodurch 70 % des Übertragungsleistungsverbrauchs eingespart werden, ist größer als der durch die Dateikomprimierung verursachte Leistungsverlust.
Nach der Aktivierung der Komprimierung ist Folgendes die Datenblockverteilung eines MemCached:
# Item_Size Max_age 1MB_pages Count Full?
1 104 B 342694 s 60 604918 ja<==Die ursprüngliche Mindestmehrheitsverteilung scheint mit 88 B etwas überhöht zu sein
2 136 B 344213 s 39 300690 ja
3 176 B 324647 s 145 863765 ja
4 224 B 347049 s 52 243412 ja
5 280 B 332911 s 47 175968 ja
6 352 B 257080 s 114 339491 ja
7 440 B 330976 s 39 92934 ja
8 552 B 310225 s 51 96849 ja
9 696 B 305251 s 68 102407 ja
10 872 B 298607 s 74 88947 ja
11 1,1 kB 276463 s 70 66919 ja
12 1,3 kB 279819 s 79 60198 ja
13 1,7 kB 293690 s 97 59073 ja
14 2,1 kB 304436 s 116 56492 ja
15 2,6 kB 298020 s 102 39576 ja
16 3,3 kB 324546 s 100 31000 ja
17 4,1 kB 321757 s 97 24056 ja
18 5,2 kB 320132 s 91 18018 ja
19 6,4 kB 332232 s 89 14062 ja
20 8,1 kB 330696 s 81 10287 ja
21 10,1 kB 329582 s 76 7676 ja
22 12,6 kB 337278 s 72 5832 ja
23 15,8 kB 348626 s 66 4224 ja
24 19,7 kB 345881 s 56 2856 ja
25 24,6 kB 345825 s 44 1804 ja
26 30,8 kB 333460 s 31 1023 ja
27 38,5 kB 335782 s 22 572 ja
28 48,1 kB 302109 s 17 357 ja
29 60,2 kB 358674 s 18 306 ja
30 75,2 kB 396573 s 17 221 ja
31 94,0 kB 431605 s 11 110 ja
32 117,5 kB 418652 s 7 56 ja
33 146,9 kB 408422 s 3 17 Nr
34 183,6 kB 277529 s 2 7 Nr
35 229,5 kB 139156 s 1 3 Nr
36 286,9 kB 232221 s 1 1 Nr
37 358,6 kB 1059 s 3 6 ja