คำแนะนำเกี่ยวกับประสิทธิภาพของ LAMP Server [ปิด]


11

เคล็ดลับเรื่องประสิทธิภาพการทำงานใดที่สามารถเสนอให้กับคนที่ใช้เซิร์ฟเวอร์ LAMP

ในอินสแตนซ์ที่มีบางอย่างเฉพาะการแจกจ่ายฉันกำลังกำหนดเป้าหมาย Debian

คำตอบ:


26

ขึ้นอยู่กับปริมาณงานของคุณ

  • สำหรับส่วนL

    • ได้รับความทรงจำมากมาย
    • ถ้าคุณสามารถมากกว่า 4GB ไป 64 บิต
    • สำหรับพาร์ติชันที่เนื้อหาบันทึกและข้อมูล MySQL ของคุณใช้ตัวเลือกเมานท์: noatime, nodiratime
    • ใช้ชุดไดรฟ์ / ไดรฟ์แบบฟิสิคัลแยกเก็บข้อมูล SQL บันทึกเนื้อหาที่คุณให้บริการโดยแยกจากแกนหมุน
  • สำหรับส่วนหนึ่งของสแต็คของคุณ - ดีบางทีคุณอาจต้องการที่จะเปลี่ยนมันสมบูรณ์ด้วยNginxหรือlighthttpdหรืออาจจะเพียงแค่ปล่อยให้ Apache สำหรับเนื้อหาแบบไดนามิกและมีเซิร์ฟเวอร์ที่แยกต่างหาก (เช่นเดียวกับที่สองหรือmathopd ) สำหรับเนื้อหาแบบคงที่ ลองดูตัวเลือกเพิ่มเติมที่นี่ หากคุณกำลังเรียกใช้ทั้ง Apache และเซิร์ฟเวอร์อื่นที่กล่องเดียวกันที่อยู่ IP ที่สองจะเป็นประโยชน์ หากต้องการลดเวลาแฝงสำหรับผู้ใช้ให้ใช้ http / 1.1 กับแบบ keep-alive พิจารณาใช้ CDN สำหรับเนื้อหาแบบคงที่

  • สำหรับMเป็นส่วนหนึ่งของโคมไฟของคุณ - ใช้เวลาดูที่mysqlperformanceblog จากด้านบนของหัวของฉัน:

    • บันทึกการสืบค้นช้า
    • ให้หน่วยความจำเพียงพอ
    • พิจารณาใช้ innodb
    • หากคุณมีข้อความจำนวนมากในการค้นหา - ใช้สฟิงซ์และมีงานแบ็ตช์ที่สร้างดัชนีใหม่
    • พิจารณาฆ่าเคียวรีที่รันนานกว่า XYZ วินาที จะดีกว่าที่จะทำให้เสีย 1% ของผู้ใช้มากกว่าที่จะทำให้ทั้งเว็บไซต์ลดลงในช่วงเวลาสูงสุด แต่นั่นขึ้นอยู่กับว่าคุณทำธุรกรรมเงินสดหรือแสดงภาพสวย ๆ
    • ใช้ memcached หากคุณสามารถแคชผลลัพธ์ของแบบสอบถาม SQL ที่ 'แพง' มากขึ้น โปรดทราบว่าการทำให้แคชใช้ไม่ได้เมื่อคุณเปลี่ยนเนื้อหาของ SQL ในทางกลับกันฉันมีเว็บไซต์ไม่กี่แห่งที่ข้อมูลทั้งหมดอยู่ในหน่วยความจำได้อย่างสะดวกสบายและสำหรับ MySQL นั้นก็เห็นได้อย่างรวดเร็วและไม่จำเป็นต้องมีแคชเพิ่มเติม
  • สำหรับP

    • ตั้งค่าการหมดเวลาการดำเนินการสำหรับสคริปต์
    • พิจารณาใช้แคชเร่ง PHP / opcode ฉันค่อนข้างพอใจกับxcacheแต่ฉันไม่ได้ใช้ตอนนี้
    • ถ้าคุณมีการประมวลผลที่เข้มข้นของ CPU - ผลแคชและเก็บไว้ใน SQL หรือ memcached

ไม่ใช่คำแนะนำด้านประสิทธิภาพ แต่ควรทำการสำรองข้อมูลนอกสถานที่ จริงๆ.


1
หากฉันอาจเพิ่มสิ่งนี้ฉันเพิ่ง blogged เกี่ยวกับการสำรองข้อมูลที่ปลอดภัยด้วยกลยุทธ์การผลักและดึงผ่าน amazon s3 ไม่สามารถใช้กับข้อมูลธนาคารได้ แต่ทุกสิ่งที่คุณเชื่อถือได้ของ amzon ควรเป็นเรื่องปกติ logaholic.de/2009/05/21/…
Karsten

ฉันสังเกตเห็นว่าโพสต์บล็อกก่อนที่คุณจะแสดงความคิดเห็น; -] เป็นคนดีอยู่แล้ว คุณสามารถเข้ารหัสข้อมูลสำรองของคุณเพื่อให้ปลอดภัยยิ่งขึ้น
pQd

3

ฉันขอแนะนำให้แยก MySQL และ Apache / PHP ออกเป็นสองเครื่อง

ตัวอย่างเช่นฉันมีหนึ่งเครื่อง (C2D E6600) ที่ถูกแทงด้วย 2.0 และสูงกว่าค่าเฉลี่ยการโหลดเสมอ ฉันวาง MySQL บนเครื่องที่สอง (P4C 3Ghz) และหลังจากนั้นค่าเฉลี่ยการโหลดทั้งสองไม่สูงกว่า 0.2-0.3 ดังนั้นฉันจึงไปจากเว็บไซต์ที่ช้ามาก ๆ ไปยังเว็บไซต์ที่รวดเร็วโดยมีเซิร์ฟเวอร์สองเครื่องที่มีประสิทธิภาพในการทำงานสูง


จุดดี. ฉันสามารถคาดเดาได้ว่าคอขวดของคุณอาจเป็นระบบย่อย IO / การตอบสนองต่อไดรฟ์ บางทีการแยกข้อมูลในไดรฟ์สองตัวที่แตกต่างกัน / การมีตัวควบคุมดิสก์ที่ดีสามารถทำเคล็ดลับได้เช่นกัน อย่างไรก็ตามหน่วยความจำมากขึ้นและซีพียูมากขึ้นก็ดีอยู่เสมอ แต่คุณก็จะได้รับคะแนนความล้มเหลวได้มากขึ้น
pQd

ดีฉันไม่แน่ใจว่ามันเป็นดิสก์ I / Os เพราะส่วนใหญ่ (สมมติว่า 90%) ยอดนิยมของ SQL ถูกแคช ฉันกำลังคิดเกี่ยวกับการสลับบริบทของ CPU แต่ฉันไม่รู้ว่านั่นอาจมีบทบาทสำคัญหรือไม่
แอนทอน Benkemoun

1

สำหรับส่วนที่ P คุณสามารถพิจารณาแคช opcode ด้วยเช่นAPC หนึ่งอาจพิจารณาmod_fastcgiด้วย php แทน mod_php เริ่มต้น


ฉันชอบ eAccelerator จริงๆ มันให้ประสิทธิภาพที่ดีที่สุดสำหรับเว็บไซต์ของฉัน
TheHippo
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.