ขอความรู้หน่อยครับ เกี่ยวกับ mysql

ถ้าเครื่องเซิร์ปเวอร์มีการโหลดสูงมาก เฉลี่ยประมาณ 2 กว่า ขึ้นไป
เนื่องจากลูกค้าใช้ mysql อัพเดต เพิ่มข้อมูลตลอดเวลาเป็นจำนวนมากๆ
ทำให้ apache ทำงานหนัก จนบางครั้งอืด หรือดาวน์ไปเลย
สเปคเครื่องเซิร์ปเวอร์ ก็ดีนะครับ แรม 1 G , CPU XEON DUALCORE 3.0
ใช้ DA อยู่ครับ ยังโหลดสูงอยู่เลย

ดูจากคำสั่ง TOP แล้ว CPU อยู่ที่ราวๆ 10% แรมใช้ไป 75%

แบบนี้ควรแก้ไขอย่างไรครับ หรือต้องไป config ตรงไหนให้สูงๆ หรือป่าวครับ
ใครพอทราบช่วยด้วย
ขอบคุณมากครับ

ลองดูนี่สิครับ http://www.thaihosttalk.com/th1/index.php?topic=5008.0

ว่าแต่ทำเว็บอะไรเหรอครับ แต่ถ้าอืดแล้วตายไปเลย
อย่างแรกก็คงต้องปรับจูนกันไปก่อนคัรบ แล้วดูว่า
ยังพอรับได้ไหวมั๊ย ถ้าได้ปรับอะไรเพิ่มไป ถ้าไม่ได้
ดูต่อว่าอะไรขาดก็เพิ่มเติมเข้าไปครับ

ผมอาจจะพูดแค่กลางๆ นะครับ ลองตรวจสอบดูครับ

ปุ๊ก

เรื่อง Traffic สูง

Tuning MySQL
Tuning Apahce
Tuning OS/Kernel

ปรับ Buffer Allocated Memory ให้เหมาะกับ MySQL ระลึกเสมอว่า MySQL ต้องสามารถ Query ได้ราบรื่นก่อนเป็นอันดับแรกครับ

ปรับ Apache ให้รับภาระโหลดที่เหมาะสม ไม่มากจนเกินไปจนเกิดภาวะ Waiting ซึ่งจะทำให้ทั้งระบบช้าตามกันไปหมด ทั้งนี้สัมพันธ์กับ MySQL Tuning ด้วยครับ

หากใช้งาน Process & Traffic มากจริง คงต้องแยก MySQL Server ออกไปอีกเครื่องหนึ่งครับ หลังจาก Tuning หมดแล้วทุกอย่าง ก็ยังรับภาระโหลดสูงเกินกำลัง ก็ต้องขยับขยายเครื่องและหน่วยความจำครับ

คงต้อง admin ปรับแต่งกันอย่างต่อเนื่องเป็นเฉพาะเครื่องๆไปครับ ไม่มีสูตรสำเร็จด้าน Tuning ตายตัว โดยทั่วๆไปก็อ่านจากลิงค์ที่แนะนำข้างบนนั้นครับ

หากเราไม่ใช่ admin คงต้องให้คนด้านนี้ดูแลมากกว่าครับ server บ่ใช่ desktop ครับ มีรายละเอียดปลีกย่อยมากมาย มิอาจจะบรรยายออกมาเป็นสูตรสำเร็จได้เท่าที่ควรครับ

ขอบคุณมากครับ สำหรับเทคนิค จะลองดูครับ

แต่เครื่องผมใช้แค่ 1 โดเมนเท่านั้น โหลดแต่ mysql เนี้ยแหละ ก็หนักแล้ว

ส่วนอื่น เร็วปกติ เปิดเว็ปก็เร็วอย่างอื่นเร็วหมด ยกเว้น mysql ไปทำให้ apache รันหนัก เฮ้อ

1 โดเมน… ไม่ใช่คำตอบว่า 1 เครื่องจะรับได้หมดครับ เว็บลูกค้าใช้ 1 โดเมน แต่เครื่อง 3 เครื่อง…

ขอถามอะไรบ๊องๆ หน่อยครับ ไฟล์ my.cnf อยู่ที่ไหนคับ

ผมใช้ Centos อยู่ครับ เห็นบอกว่าอยู่ที่ /etc/my.cnf แต่ไม่เห็นจะมีเลยครับ

ใครทราบบ้างครับ ช่วยบอกหน่อยว่าอยู่ที่ไหน

สร้างเองเลยครับ
/etc/my.cnf นั่นแหละครับ

สร้างเองแล้วต้องไป edit file อะไรด้วยหรือป่าวครับ

Mysql จะดึงมาใช้เลยเรอครับ

ถ้าติดตั้งแบบ rpm สำหรับ centos / fedora / redhat นะครับ
ถ้ามันตรวจพบแฟ้ม /etc/my.cnf มันจะเอาการตั้งค่ามาใช้เลย
ไม่ต้องแก้ไขใดๆ ทั้งสิ้น

ยกเว้นติดตั้งจาก source

จริงๆแล้วโหลด 2 ถือว่าไม่สูง เครื่องๆนึงจูนดีๆรับได้ถึง 20 สบายๆ
ตอนโหลด 20 ก็ยังเรียกหน้าเวบได้ไวไม่หน่วง แต่ถ้าเกิน 30 ขึ้นไปแล้วจะเริ่มออกอาการ

และก็ต้องดูองค์ประกอบอย่างอื่นด้วย เช่น memory เหลือเท่าไหร่
swap ถูกใช้งานหรือไม่ มากแค่ใหน (swap ยิ่งใช้เยอะก็จะยิ่งช้ามาก)

mysql ใช้ memory ไปเท่าไหร่
มี process อันใหนที่ใช้ memory สูงผิดปกติหรือไม่
มี log ไฟล์ที่ไม่ได้ rotate ทำให้มีขนาดใหญ่มากหรือไม่

ผมจะก็อป text จาก pc เครื่องผมเองลงไฟล์บน shell ทำไงครับ
ถ้าจะให้พิมพ์เองก็ยาว

ใช้ PuTTY อยู่หรือเปล่าครับ http://www.putty.nl/download.html
Copy ข้อมูลจากเครื่องมาได้เลย แล้วไปคลิกขวาใน PuTTY

ใช้แล้วจะติดใจ

โอ้ พระเจ้าช่วย กล้วยทอด
ผมใช้ putty มาตลอด ดันไม่เคยคลิ้กขวาเลย อะไรจะง่ายปานนั้น เริ่มติดใจแล้ว 555 เจ๋ง

เสี้ยวมานาน เวง
ขอบคุณมากครับ

ผมก็รู้มาโดยบังเอิญเหมือนกันครับ