เว็บโป๊ที่คนเข้าดูเยอะๆ ทำให้ MySQL ล่มบ่อยๆได้?

ตอนนี้โฮสของ networkthai.net เครื่อง 3 ออกอาการ MySQL เดี้ยงเกือบทั้งวัน บางครั้งติดต่อ MySQL ได้ บางครั้งไม่ได้ เป็นมาตั้งแต่ต้นๆเดือนกุมภาแล้ว เห็นบอกว่าเพราะเว็บโป๊ที่เอามาลง แล้วคนเข้ามาดูเยอะ เลยทำให้โฮสเกิดอาการเดี้ยงๆเป็นช่วงๆ เลยโดนลูกค้าต่อว่าทุกวัน จนตอนนี้ปิดเว็บบอร์ดของตัวเองหนีลูกค้าเป็นที่เรียบร้อยแล้ว :blink:

เลยทำให้สงสัยว่าการที่มีคนเข้าเว็บไปดูรูปภาพเยอะๆ จะเป็นสาเหตุที่ทำให้ MySQl ของโฮสเกิดอาการเดี้ยงได้ด้วยเหรอ ผมรู้สึกว่ามันไม่น่าจะเกี่ยวกันระหว่างการโหลดรูปภาพ กับ MySQL เลยหน่ะ… :huh:

อาจจะเป็นการโพสรูปภาพลงบน Webboard ต่างๆก็ได้มั้งครับ ยิ่งพวก IPB นี่ไม่ต้องพูดถึงเลยครับ เครื่องไม่นิ่งจริงๆ ไปทุกราย

:angel: ของอย่างนี้อยู่ที่จรรยาบรรณ ของ ผู้ให้บริการ

ไม่โดน กองปราบ เล่นงานหร่อครับ เว็บโป้ Server ไทยอะครับ

ไม่โดน กองปราบ เล่นงานหร่อครับ เว็บโป้ Server ไทยอะครับ

เว็บนั้นไม่ถึงกับโจ๋ครึ่มหรอกครับ แต่ผมมักจะเรียกเว็บที่มีแต่รูปภาพกระตุ้นราคะว่า"เว็บโป๊"หน่ะครับ

อีกอย่างที่สงสัยคือ เห็นบอกว่าถ้าเพิ่มแรมแล้วก็จะเป็นปกติ…
แรมจะช่วยได้จริงๆเหรอ??

ผมมักจะเรียกเว็บที่มีแต่รูปภาพกระตุ้นราคะว่า"เว็บโป๊"หน่ะครับ

พวก iDoL ไม่น่ามีปัญหาน่ะผมว่า แต่ถ้าเว็บiDoLมีรูปโป้เยอะๆก็ เสี่ยงอยู่เหมือนกัน เพราะมันควบคุมยาก ยิ่งมีเว็บบอร์ดโพสรูปยิ่งแล้วใหญ่ ต้องมีทีมงานดีๆคอยดูแลเลยแหล่ะครับ
แต่ก่อนผมแวะไปแถวๆ กะปุกดอทคอม ก็มีพิคโพส มีรูปโป้ขึ้นซะเพียบเลย ผมละงง ว่าทีมดูแลหายไปไหน อิอิ

Too many connection: max_connection ของ mysql น้อยเกินไป ทำให้ไม่สามารถรองรับ connection ทีละมากๆ ได้

Too many connection: max_connectionทำให้ไม่สามารถรองรับ connection ทีละมากๆ ได้ 

น่าจะใช่…แต่ปรับเป็นเท่าไหร่ถึงจะดีครับ ดูจากองค์ประกอบไหนบ้าง ว่าควรปรับเท่าไหร่ ค่ามากค่าน้อยเท่าไหร่ … :angel:

ปรับมากเกินไป โหลดจะพุ่งกระฉูดจนเครื่องเดี้ยงได้ อันนี้ต้องแล้วแต่เครื่องครับ ทดสอบดู แล้วคอย monitor แก้กันไป จูนกันไป

ปรับมากเกินไป โหลดจะพุ่งกระฉูดจนเครื่องเดี้ยงได้ อันนี้ต้องแล้วแต่เครื่องครับ ทดสอบดู แล้วคอย monitor แก้กันไป จูนกันไป 

ครับผม

แล้วการเพิ่มแรมให้มากขึ้นอีกนิด ไม่สามารถช่วยได้เหรอครับ??

(เพราะเห็นทาง networkthai บอกว่าถ้าเพิ่มแรม อาการ MySQL ก็จะหายเดี้ยง แต่ถึงทุกวันนี้ยังออกอาการเป็นระยะๆอยู่เลย )

ตรงจุดนี้มาจากการ limit จาก config ของ mysql เองครับ ไม่ใช่ mysql เดี้ยง

mysql ยังทำงานปกติดีครับ แต่ connection มันเต็มแค่นั้นเอง

จะต้องเพิ่มค่า max_connection เข้าไปอีก โดยแก้ไขไฟล์ /etc/my.cnf

กรณี RAM น้อย ( 1 GB)
[mysqld]


key_buffer=250M
max_connections=300
sort_buffer_size=1M
read_buffer_size=1M

ปรับค่า 4 ค่านี้ ให้เหมาะสมกับสภาพการใช้งาน
โดยมีสูตรคำนวณกรณีที่มีการใช้งาน connection เต็มตาม max_connection จะใช้ RAM สำหรับ MySQL ประมาณ key_buffer + max_connections * (sort_buffer_size +read_buffer_size) ในกรณี คือ 250 + 300 x 2 =850 MB อันนี้ไม่รวม process อื่นในเครื่อง และ ไม่ได้สนใจว่า CPU จะทำงานทันรึเปล่านะครับ มองแค่ว่า MySQL connection กับ RAM เฉย ๆ ค่า key_buffer, sort_buffer_size, read_buffer_size ไม่ควรจะน้อยกว่านี้ถ้าไม่จำเป็นจริง ๆ ไม่งั้น MySQL จะช้าไปและทำให้เครื่อง overload ได้

แก้ใหม่ … สรุปสูตรมันยังไงละหนอ … หามาหลายที ก็ไม่เคยมีที่ไหนเหมือนกันซักที่ เอิ้ก

จะต้องเพิ่มค่า max_connection เข้าไปอีก โดยแก้ไขไฟล์ /etc/my.cnf

กรณี RAM น้อย ( 1 GB)
[mysqld]


key_buffer=250M
max_connections=300
sort_buffer_size=1M
read_buffer_size=1M

ย้ำให้ชัดๆ ตามที่คุณ SiamInterHost แนะนำไว้นะครับ คือหากตั้งค่าแบบนี้ ถ้าเครื่องมี 1G และเปิด service อื่นด้วย เช่น web server, mail server ถ้ามี traffic หน่อย รับรองเดี้ยงครับ แต่ถ้าใช้แต่ MySQL ก็ไม่เป็นไร

อ่านให้ดีนะครับ

งั้น ถามต่อเลยดีกว่า … ไหน ๆ ก็ ไหน ๆ แล้ว

ถามว่า สามค่าเนี้ย … มีผลอะไรบ้างครับ? … :lol: … ขึ้นหรือลง มีผลยังไงครับ ตอบแบบดิบ ๆ ก็ได้ครับ เอาแค่ไปนึกภาพออก … เพราะหากคิดตามสูตร … การปรับค่าให้ได้ผลเท่าเดิมมันมีหลากหลายรูปแบบ … จึงต้องถามว่าค่าอะไร ทำอะไร ผลอะไรบ้าง

key_buffer
sort_buffer_size
read_buffer_size

งั้น ถามต่อเลยดีกว่า … ไหน ๆ ก็ ไหน ๆ แล้ว

ถามว่า สามค่าเนี้ย … มีผลอะไรบ้างครับ? … :lol: … ขึ้นหรือลง มีผลยังไงครับ ตอบแบบดิบ ๆ ก็ได้ครับ เอาแค่ไปนึกภาพออก … เพราะหากคิดตามสูตร … การปรับค่าให้ได้ผลเท่าเดิมมันมีหลากหลายรูปแบบ … จึงต้องถามว่าค่าอะไร ทำอะไร ผลอะไรบ้าง

key_buffer
sort_buffer_size
read_buffer_size

key_buffer_size

Index blocks for MyISAM tables are buffered and are shared by all threads. key_buffer_size is the size of the buffer used for index blocks. The key buffer is also known as the key cache.

The maximum allowable setting for key_buffer_size is 4GB. The effective maximum size might be less, depending on your available physical RAM and per-process RAM limits imposed by your operating system or hardware platform.

Increase the value to get better index handling (for all reads and multiple writes) to as much as you can afford. Using a value that is 25% of total memory on a machine that mainly runs MySQL is quite common. However, if you make the value too large (for example, more than 50% of your total memory) your system might start to page and become extremely slow. MySQL relies on the operating system to perform filesystem caching for data reads, so you must leave some room for the filesystem cache. Consider also the memory requirements of other storage engines.

sort_buffer_size

Each thread that needs to do a sort allocates a buffer of this size. Increase this value for faster ORDER BY or GROUP BY operations.

read_buffer_size

Each thread that does a sequential scan allocates a buffer of this size (in bytes) for each table it scans. If you do many sequential scans, you might want to increase this value, which defaults to 131072.

ดิบพอมะครับ :slight_smile:

ควรอ่าน: http://dev.mysql.com/doc/refman/4.1/en/system.html

ก็พอจะมีวิธีแก้นะครับ ผมดูแลเวป torrent ให้ลูกค้าอยู่จะเกิดปัญหานี้บ่อยมาก ๆ ปัญหาก็เกิดจากคนติดต่อเข้า server เยอะ หรือเข้าชมพร้อม ๆ ก็จะเป็นแบบนี้ครับ(โดยส่วนมาก) ทำให้ tcpsock เต็มและไม่สามารถสร้างใหม่ได้ วิธีการเคลียร์ tcpsock ก็คือ restart apache ครับ ผมตั้ง restart ไว้ทุก ๆ 30 นาที(Cron Jobs) ก็ไม่ค่อยมีปัญหานี้แล้วครับ

ก็พอจะมีวิธีแก้นะครับ ผมดูแลเวป torrent ให้ลูกค้าอยู่จะเกิดปัญหานี้บ่อยมาก ๆ ปัญหาก็เกิดจากคนติดต่อเข้า server เยอะ หรือเข้าชมพร้อม ๆ ก็จะเป็นแบบนี้ครับ(โดยส่วนมาก) ทำให้ tcpsock เต็มและไม่สามารถสร้างใหม่ได้ วิธีการเคลียร์ tcpsock ก็คือ restart apache ครับ ผมตั้ง restart ไว้ทุก ๆ 30 นาที(Cron Jobs) ก็ไม่ค่อยมีปัญหานี้แล้วครับ

restart apache ดีหรอครับผม :angel:

ไม่ทราบว่า peers และ online เื้ท่าไหร่ ถึงต้อง restart apache
ผมคิดว่าการ restart apache ทุก 30 นาที ไม่ใช่ best practice ครับ