ลองหาปัจจัยที่ทำให้ server down ก่อนครับ เรื่องหลักๆก็คือ
ดู process ของ server ในแต่ละช่วงมันเยอะจริงหรือเปล่า และมันเยอะด้วย process อะไร
ปกติ web server กับ databas server จะแยกกันอยู่ ไม่ควรใช้ตัวเดียวกัน เพราะฉะนั้น process ของ web server กับ database server จะไม่กวนกันเอง.....
web server จะเน้นที่ cpu (ไม่เน้นเนื้อที่จัดเก็บข้อมูลสักเท่าไรนัก) แรงๆเพื่อการประมาลผลที่รวดเร็ว memory เยอะๆ เพื่อการเข้าถึงในปริมาณมากๆ เพราะฉะนั้นเราก็สามารถดูอาการของ cpu ได้ว่าใช้มากน้อยเท่าใด memory ใช้ไปเท่าใด
database server จะเน้นที่ memory เป็นหลัก (รวมไปถึงสัญญาณนาฬิกาด้วย) เน้นที่เนื้อที่เก็บเยอะๆ..... แต่ถ้าได้ cpu แรงก็ยิ่งดี แต่ที่สำคัญคือแยกกันกับ web server เพราะฉะนั้นเราก็สามารถดู process ได้ว่า database ของเรามีประสิทธิภาพเท่าใด
จากที่ได้อ่านปัญหานะครับ...
ถ้าจะดูว่า web server กับ database server อยู่คนละที่หรือเปล่า ก็ดูว่า IP สำหรับติดต่อฐานข้อมูลมันอันเดียวกันกับ IP ของ web server หรือเปล่า.... (หลายคนคุ้นเคยกับ localhost เลยอาจจะลืมไป)
ถ้า host เขาเปิด port ssh ก็สามารถเข้าไปดู process ได้ครับ ผ่านโปรแกรมช่วย (แต่น่าจะไม่ได้เปิดให้ใช้) แต่ไม่เป็นไรครับ ถ้า host เขายืนยันว่า process ของ web server ไม่เยอะเกินก็ควรเชื่อเขาไว้ก่อน
ส่วน time ของ mysql ที่เกิน 200 นี่อาจจะเป็นกุญแจก็ได้นะครับ (อาจะใช่ หรือไม่ก็ได้) คือ อาจจะมีคิวรี่ใดที่ใช้ระยะเวลาในการประมวลผลนานเกินไปจน web server time out ก็ได้ครับ เพราะคุณบอกว่า ตอนดาวน์มันจะมี่ mysql time นี้เยอะ ซึ่งตรงนี้อาจจะเป็นที่ code ของเราเองก็ได้ บางครั้งอาจจะไม่ใช่ loop แบบอนันต์ แต่เป็น loop ที่นานเกิน web server ก็ได้ (แค่นี้ก็แฮงค์ได้แลวครับ ที่คุณ kill process ทิ้งแล้วไปต่อได้นั้นถูกต้องแล้วครับ)
time out นั้น มีทั้ง web server และ database server (ส่วนของคิวรี่) นะครับ ต้องตรวจสอบทั้งสองอย่าง.. คิดว่าคุณคง kill process ของ mysql ใช่มั้ยครับ เพราะฉะนั้นลองมุ่งประเด็นตรวจสอบไปที่คิวรี่นานๆดู ถ้าเขียนเวปเองน่าจะรู้อยู่แล้วว่าคิวรี่ของ page ไหนที่มันใช้เวลานานๆ
ลองสอบถาม host ดูว่า time out ของ web server นานเท่าไหร่ ถ้าเป็นไปได้ลองให้เขาปรับให้นานขึ้นให้เพียงพอกับเวลาที่เราคาดว่าจะนานที่สุดดูนะครับ
ปกติการ config mysql สำหรับ web นั้นก็ไม่ค่อยจะต้องเผื่อ memory ไว้มากมายสักเท่าไหร่นัก นอกจากงานบางประเภท แต่ถ้าคุณประเมิน web ของคุณไว้ (เช่น จำนวน connection , จำนวนคิวรี่ในแต่ละช่วงเวลา, จำนวนตารางที่ใช้ในแต่ละครัง ฯลฯ) คุณก็ต้องปรับค่าบางอย่างให้เหมาะสมด้วย หลักๆก็น่าจะเป็นเรื่อง memory ที่ใช้ คิวรี่ time out ซึ่งมันก็เป็นเรื่องของการทำให้ perfomance ของ database นั้นรองรับกับการทำงานได้อย่างมีประสิทธิภาพนั่นเอง