คำชี้แจงลิขสิทธิ์: คุณสามารถพิมพ์ซ้ำได้ตามต้องการ เมื่อพิมพ์ซ้ำ โปรดระบุแหล่งที่มาต้นฉบับและข้อมูลผู้แต่งของบทความและคำชี้แจงลิขสิทธิ์นี้ในรูปแบบของไฮเปอร์ลิงก์
http://www.chedong.com/blog/archives/001431.html
ลอง:
ตัวเลือกการบีบอัด MEMCACHE_COMPRESSED ในฟังก์ชัน PHPmemcache_set() ถูกเปิดใช้งาน และ memcache_get() สามารถขยายขนาดออบเจ็กต์แคชที่บีบอัดได้โดยอัตโนมัติในระหว่างการอ่านครั้งต่อไป
ผล:
หลังจากการทดสอบ สำหรับแอปพลิเคชันปัจจุบันของ Blog Bus หลังจากเปิดใช้งานการบีบอัด จำนวนอ็อบเจ็กต์ที่จัดเก็บไว้ในความจุเดียวกัน (2G) เพิ่มขึ้นประมาณสองเท่า และอัตราการเข้าถึงแคชเพิ่มขึ้นจากประมาณ 50% เป็นประมาณ 60% การลงทุนด้านฮาร์ดแวร์ยังคงจำเป็นเพื่อเพิ่มอัตราการเข้าชมต่อไป หลังจากเพิ่มหน่วยความจำ 2 เท่า อัตราการเข้าถึงแคชก็เพิ่มขึ้นเป็น 90% ในที่สุด
สิ่งที่ต้องมีก่อน 0: แคชหน่วยความจำมีประโยชน์และอัตราการเข้าชมก็คุ้มค่าที่จะปรับปรุง
การเพิ่มประสิทธิภาพจาก 60% เป็น 90% หรือจาก 90% เป็น 95% จะคุ้มค่าหรือไม่ ขึ้นอยู่กับว่าการปรับปรุงประสิทธิภาพหลังจากการโจมตีนั้นคุ้มค่าหรือไม่
สถานที่ตั้ง 1: MemCached เต็มแล้ว ใช้ memcached-tool เพื่อตรวจสอบสถิติความจุของ memcached เพื่อดูว่า memcached เต็มแล้วหรือไม่ หากพื้นที่ของ MemCached ไม่เต็มเมื่อทำงานเต็มที่ การเปิดใช้งานการบีบอัดจะไม่มีความหมาย นอกจากนี้ หากคุณพบว่า MemCached ไม่เต็ม วิธีที่ดีที่สุดคือลดความจุของ MemCached ที่เกี่ยวข้องเพื่อเพิ่มหน่วยความจำให้กับผู้อื่น บริการแคช
สถานที่ตั้ง 2: อัตราส่วนการบีบอัด ข้อมูลแคชอาจมีขนาดใหญ่กว่าสองสามร้อยไบต์ หากเป็นคู่คีย์-ค่าทั้งหมดที่มีขนาดเล็กกว่า 100 ไบต์ การบีบอัดอาจทำให้เกิดการขยายตัวได้ เนื่องจากขนาดของออบเจ็กต์แคชถูกจัดเก็บไว้ในบล็อกขนาดคงที่ใน Memcached ขนาดขั้นต่ำคือ 88 B ดังนั้นการบีบอัดและการขยายที่เกิดจากข้อมูลน้อยเกินไปจึงไม่ใช่ปัญหาใหญ่
การสูญเสีย CPU ของแอปพลิเคชันส่วนหน้า:
การสูญเสีย CPU ของการบีบอัดข้อมูลเพิ่มเติมนั้นต่ำกว่าการปรับปรุงประสิทธิภาพอันเนื่องมาจากการเพิ่มขึ้นของอัตราการเข้าถึงแคชและการเข้าถึงฐานข้อมูลเบื้องหลังที่ลดลง ซึ่งคล้ายกับการบีบอัด gzip/deflate ของ http โดยทั่วไปข้อมูลที่บีบอัดจะอยู่ที่ประมาณ 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 วิ 52 243412 ใช่
5 280 B 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 B 298607 วินาที 74 88947 ใช่
11 1.1 kB 276463 วินาที 70 66919 ใช่
12 1.3 กิโลไบต์ 279819 วินาที 79 60198 ใช่
13 1.7 kB 293690 วินาที 97 59073 ใช่
14 2.1 กิโลไบต์ 304436 วินาที 116 56492 ใช่
15 2.6 kB 298020 วินาที 102 39576 ใช่
16 3.3 KB 324546 วินาที 100 31000 ใช่
17 4.1 กิโลไบต์ 321757 วินาที 97 24056 ใช่
18 5.2 kB 320132 วินาที 91 18018 ใช่
19 6.4 kB 332232 วินาที 89 14062 ใช่
20 8.1 กิโลไบต์ 330696 วินาที 81 10287 ใช่
21 10.1 กิโลไบต์ 329582 วินาที 76 7676 ใช่
22 12.6 kB 337278 วินาที 72 5832 ใช่
23 15.8 กิโลไบต์ 348626 วินาที 66 4224 ใช่
24 19.7 กิโลไบต์ 345881 วินาที 56 2856 ใช่
25 24.6 kB 345825 วินาที 44 1804 ใช่
26 30.8 kB 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 kB 431605 วินาที 11 110 ใช่
32 117.5 kB 418652 วินาที 7 56 ใช่
33 146.9 kB 408422 วิ 3 17 เลขที่
34 183.6 kB 277529 s 2 7 no
35 229.5 kB 139156 s 1 3 no
36 286.9 kB 232221 s 1 1 เลขที่
37 358.6 kB 1,059 วิ 3 6 ใช่