คำตอบของ Markdorison นั้นเป็นวิธีที่ได้รับการยอมรับในการโจมตีปัญหานี้ ฉันจะเอามันไปอีกหน่อย
เมื่อคุณมีPressflowสำหรับ D6 หรือ Drupal สำหรับ D7, Memcached และVarnishทำงานร่วมกันได้เป็นอย่างดีคุณจะต้องกำหนดรหัสไฟล์VCLของคุณเอง มีเกมฟรีที่ให้จุดเริ่มต้น แต่คุณต้องเล่นกับพวกเขาเสมอ
ในการทำให้ Varnish ทำงานได้อย่างเหมาะสมตรวจสอบให้แน่ใจว่าคุณได้เริ่มต้นด้วย -s malloc xG แทนค่าเริ่มต้นของ -s file / path / to / file นอกจากนี้ยังมี Varnish ยังมีรายการ Varnish แคชแบบคงที่ตราบเท่าที่คุณสามารถ
หากคุณมีเว็บเซิร์ฟเวอร์มากกว่าหนึ่งแห่งให้ลบ ETag ออกจากส่วนหัวที่ส่งไปยัง Varnish ใน VCL ฉันยังลบ Expires และเพียงใช้อายุและอายุสูงสุดในส่วนหัวเพื่อรับเบราว์เซอร์กลับไปที่ไซต์
รุ่น 1.5 (ณ วันที่ 3 มีนาคม 2011) ยังคงเป็นโมดูล Memcached รุ่นที่เร็วที่สุดจาก Drupal.org ฉันมักจะปรับใช้โดยใช้ถังเดียวต่อเซิร์ฟเวอร์เพื่อลดปริมาณการใช้งาน tcp สำหรับการเชื่อมต่อกับถังขยะหลายถังที่มีขนาดใหญ่)
กำหนดค่าแคชใน "ประสิทธิภาพ" ไปยังภายนอกและตั้งอายุสูงสุดซึ่งจะส่งส่วนหัวที่ถูกต้องไปยังพร็อกซีแคชเช่นวานิช
หากคุณไม่สามารถรับแคชบางหน้าอย่างถูกต้องในวานิชตรวจสอบโพสต์บล็อกบนเว็บที่มีรายละเอียดวิธีการตรวจสอบคำขอ นี่คือตัวอย่างโพสต์ที่ฉันเขียนสักครู่: การหยุด Varnish และ Drupal Pressflow คืออะไรจากการแคชการดูหน้าผู้ใช้ที่ไม่ระบุชื่อ
คุณควรเลือก InnoDB (หรือหนึ่งในชื่ออื่นจากผู้ให้บริการรายอื่นเช่น XtraDB) สำหรับ MySQL และย้ายตารางทั้งหมดไปไว้ในนั้น จากนั้นตรวจสอบการโพสต์บล็อกนี้สำหรับคำแนะนำการปรับจูนพื้นฐานhttp://www.mysqlperformanceblog.com/2007/11/01/innodb-performance-optimization-basics/
การมีพูลบัฟเฟอร์ขนาดใหญ่นั้นมีความสำคัญอย่างยิ่ง เมื่อโหลดการทดสอบไซต์จะเปิดบันทึกการสืบค้นที่ช้า ในตอนแรกคุณอาจต้องการสืบค้นคำสั่งที่ใช้เวลานานกว่า 50msec จากนั้นปรับแบบสอบถามและลดเวลาการจับภาพบันทึกช้าลงซ้ำ ๆ จนกว่าคุณจะมีแบบสอบถามส่วนใหญ่ที่ใช้ดัชนีและดำเนินการอย่างรวดเร็ว
พื้นฐานอื่น ๆ ที่เกี่ยวข้องกับการมีAPCสำหรับ PHP หากคุณใช้ CGI ที่รวดเร็วแทนที่จะใช้ mod_php ลองใช้เวลาทำแคช APC ให้ใช้ร่วมกันข้ามอินสแตนซ์ php ด้วยการกำหนดค่าสคริปต์ตัวห่อหุ้มที่ดี นอกจากนี้ตรวจสอบให้แน่ใจว่าแคช APC อยู่ในไฟล์หน่วยความจำที่แมปเพื่อบีบบิตสุดท้ายออกจาก PHP