ขอคำแนะนำ การปรับแต่ง web server หน่อยครับ

คือตอนนี้มีปัญหา เวบทำงานหนัก uip ประมาณ 27,000 ต่อวัน

board vBulletin 4 อย่างเดียว

อยากขอคำแนะนำว่า ยังสามารถปรับแต่ง อะไรเพิ่มได้ไหม หรือต้องปรับเปลี่ยนการทำงานอย่างไร ให้ทั้ง 2 เครื่องรองรับได้มากกว่านี้ ในอนาคต

ตามข้อมูลด้านล่าง

มี server 2 ตัว

ตัวแรก R210 web server

Intel® Xeon® CPU X3450 @ 2.67GHz

Total Memory 16GB

Apache 2.2.15

DirectAdmin 1.36.0

MySQL 5.0.51a

ใช้ memcached

ตอนสมาชิก online เยอะๆ

ตอนใช้งาน Mod Rewrite

r300 ใช้ เป็น database แยก

Intel® Xeon® CPU X3323 @ 2.50GHz

Total Memory 10229596 kB

Apache 2.2.16

DirectAdmin 1.36.0

MySQL 5.0.51a

ตัว database

รูปไม่ขึ้นครับ

แล้วก็… ปริมาณ load ไม่เกี่ยวกับ UIP นะครับ

ดูที่ pageview เป็นหลัก

เอ… รูปก็ขึ้นนะครับ

pageview ประมาณ 300,000 ต่อวันครับ

vBulletin ติดตั้ง add on อะไรบ้าง

อ่า ขึ้นละ - -’

เท่าที่ดู… มันเหมือนจะช้าที่เว็บ

  • ลงพวก apc / xcache อะไรพวกนี้แล้วยังครับ?

  • ได้เปิด mytop ดูบ้างมั้ยครับ?

  • Ads On Category

  • Sub-Forum Manager

  • vBSEO

  • Sitemap Generator

  • iTrader

  • BBR - Useful Links on Member Action Dropdown

  • BF - Easy Pages

  • Separate Sticky and Normal Threads

  • Usergroup Color Bar

  • Add new tabs

ตามนี้ครับ

อ่า ขึ้นละ - -’

เท่าที่ดู… มันเหมือนจะช้าที่เว็บ

  • ลงพวก apc / xcache อะไรพวกนี้แล้วยังครับ?

  • ได้เปิด mytop ดูบ้างมั้ยครับ?

ใช้ memcached อย่างเดียวครับ

mytop ไม่เคยใช้ครับ ไม่แน่ใจว่ามีหรือเปล่า

เครื่องที่ 2 จริงๆแล้วไม่จำเป็นต้องลง DirectAdmin เลย ลงแค่เครื่องแรกแล้วแก้ค่า config ของ DirectAdmin ให้มาใช้ Mysql เครื่องที่ 2 ได้เลย

เท่าที่ดูคือช้าที่ apache ก็ต้องดูก่อนว่ามันช้าเพราะรอ database หรือเปล่า ให้เปิด phpmyadmin เข้าไปดู process list ว่ามี lock หรือ query ค้างเยอะมั้ย

ถ้า query ค้างเยอะ ก็มาดูต่อที่ config my.cnf เครื่อง DB ว่าปรับแต่งดีแล้วหรือยัง กับอีกอย่างคือ เครื่องแรก connect ไปเครื่อง DB ด้วยสาย cross หรือว่าวิ่งผ่าน switch ทาง IP จริง

ถ้าช้าที่ Apache ไม่เกี่ยวกับ Database ก็ต้องมาดูว่าช้าเพราะมีไฟล์หรือรูปใหญ่ๆให้โหลดเยอะหรือเปล่า

งั้นก่อนอื่น ลง apc " หรือ " xcache ก่อนเลยครับ แล้วดูผล

เวบอะไรหนอ อยากทราบจัง

ผมว่าน่าจะมีส่วน 2 อย่างที่ว่า

1.Database เป็นปํญหามากถ้าวางโครงสร้างการ คิวรี่ไม่เหมาะสม

2.รูปใหญ่ๆให้โหลดเยอะ หรืออาจโดนเอารูปเราไปเปิดที่เว็บอื่นๆก็เป็นได้

Apache ใช้ CPU time สูงมาก

แนะนำให้ลง xcache ครับ

น่าจะมาจากตรงนี้นะ

ปล คุ้นๆว่าเคยปรึกษาเรื่อง vBulletin กับผมนะ

รูปค่อนข้างเยอะ กว่า 70GB ขนาดไม่เกิน 150K ต่อรูป เดี๋ยวกลับไป เปิดใช้ xcache ดูครับ ใช้พร้อมกับ memcached ได้เลยไหม

XCache ใช้กับ Memcached ได้ครับ

Database ดูนิ่งๆนะ ไม่น่ามีปัญหา

ปัญหาน่าจะที่ตัว Web Server เพราะมัน process แต่ละ session นานมาก และกิน CPU เยอะอีกต่างหาก

ถ้าจะแนะนำได้ละเอียดกว่านี้ต้องดูโค้ดหน้าเว็บด้วยครับ เอาแนะนำคร่าวๆ ลองไปทำเองละกันครับ

  1. ลงพวก apc / xcache (หรือตัว php optimizer อื่นๆ) ก่อนเลย เพราะจะช่วยให้ php ทำงานเร็วขึ้น

  2. ลองใช้ tool ตัวนี้ http://developer.yahoo.com/yslow/ จับดูว่าในหน้าเว็บมีอะไรหน่วงการโหลดอยู่รึเปล่า

ตามปกติที่เคยพบก็จะเป็นพวก ads, รูปภาพ, hotlink/hotscript ที่วิ่งดึงข้อมูลจากเครื่องอื่น

ถ้าเจอพวกนี้ที่มันโหลดช้าๆก็ลองดูว่าปรับอะไรได้อีกไหม หรือเอาออกได้ไหม หรือเปลี่ยนไปเรียกแบบ iframe ได้ไหม

  1. ถ้าวิเคราะห์ดูแล้วเว็บมันหนักพวก static content มาก เช่นรูปภาพ ให้ทำ reverse proxy

  2. ปรับตัวอื่นครบแล้ว ค่อยมาปรับ apache อีกทีเป็นครั้งสุดท้าย ลองจูนพวก timeout, MaxKeepAliveRequests, KeepAliveTimeout

รอดูผล ว่า apc/xcache จะช่วยได้แค่ใหน

อย่าลืมปิด keep alive ใน apache ด้วยล่ะ

รายงานผล หลังจากเปิดใช้งาน

XCache + Memcached ที่ web server

หลังจากเปิดใช้งานmod rewrite

ดู apache หน่อยสิครับ จูนไว้ยังไง

แล้ว Keepalive ปรับไว้เท่าไหร่ครับ หรือว่าปิดไป ถ้าเปิดใช้ก็ไม่ควรเกิน 2 วิ

หนักขนาดนี้ Keep Alive = off เท่านั้นครับ