ThaiSEOBoard.com

พัฒนาเว็บไซต์ => Programming => ข้อความที่เริ่มโดย: HaHaHaHa ที่ 18 กรกฎาคม 2011, 20:48:14



หัวข้อ: ใน SQL ตรง Server Status สีของ Value แต่ละ Variable มันหมายความว่ายั&
เริ่มหัวข้อโดย: HaHaHaHa ที่ 18 กรกฎาคม 2011, 20:48:14
ใน SQL ตรง Server Status สีของ Value แต่ละ Variable มันหมายความว่ายังไงบ้างครับ
คือสีแต่ละสี Value มันมีสีดำ สีเขียว สีแดง มันหมายความว่าไงบ้างครับ
พวกนี้ตัวเลขจะเป็นสีแดง
Slow_queries    36
Innodb_buffer_pool_reads    12
Handler_read_rnd    21 M
Handler_read_rnd_next    112 M
Qcache_lowmem_prunes    4,588
Created_tmp_disk_tables    5,272
Select_full_join    19    
Opened_tables    17 k
Table_locks_waited    2,699

ตัวเลขเป็นสีเขียว
Key_writes    1,594 k
Key_reads    3,601
Delayed_errors    0
Threads_cached    8
Innodb_row_lock_time_avg    0
Innodb_row_lock_time_max    0
Innodb_row_lock_waits 0
Innodb_buffer_pool_wait_free    0
Innodb_buffer_pool_pages_dirty    0

ทีเหลือตัวเลขเป็นสีดำ

ผมใช้ VPS อะครับ คนเข้าไม่ถึง 100คนเว็บก็อืดแล้วอะครับ ram 1.5gb ระเบิดได้2gb cpu 3x2


หัวข้อ: Re: ใน SQL ตรง Server Status สีของ Value แต่ละ Variable มันหมายความว่ายั&
เริ่มหัวข้อโดย: richmind ที่ 18 กรกฎาคม 2011, 20:53:53
รอฟังด้วยคน


หัวข้อ: Re: ใน SQL ตรง Server Status สีของ Value แต่ละ Variable มันหมายความว่ายั&
เริ่มหัวข้อโดย: ~~~เทพ Google Ad ~~~ ที่ 18 กรกฎาคม 2011, 20:59:22
มีการ Config หรือยังครับ


หัวข้อ: Re: ใน SQL ตรง Server Status สีของ Value แต่ละ Variable มันหมายความว่ายั&
เริ่มหัวข้อโดย: HaHaHaHa ที่ 18 กรกฎาคม 2011, 22:04:38
มีการ Config หรือยังครับ
config แล้วครับ


หัวข้อ: Re: ใน SQL ตรง Server Status สีของ Value แต่ละ Variable มันหมายความว่ายั&
เริ่มหัวข้อโดย: HaHaHaHa ที่ 19 กรกฎาคม 2011, 01:07:56
ขออนุญาติดันครับ


หัวข้อ: Re: ใน SQL ตรง Server Status สีของ Value แต่ละ Variable มันหมายความว่ายั&
เริ่มหัวข้อโดย: thenetxx ที่ 19 กรกฎาคม 2011, 17:24:25
สีแดง :: การใช้งานที่มีปัญหา ใช้เกินลิมิต ช้า เยอะ
สีดำ :: การใช้งานปกติ
สีเขียว :: การใช้งานเร็ว ปกติ มี resource เหลือกอีกเยอะ

ดูออกเป็นบางอันนะครับ

Slow_queries    36   << มีคำสั่งที่ query แล้ว DB ช้า 36 อัน
Handler_read_rnd    21 M << ใช้ ram เยอะเกินไป
Handler_read_rnd_next    112 M  << ใช้ ram เยอะเกินไป
Select_full_join    19  << มีการselect แล้วใช้การ join เต็มที่ 19 รายการ(หรือ join 19 table ไม่แน่ใจ)
Table_locks_waited    2,699 << Table ที่การ lock ระหว่างการ query คือมีติดต่อไป insert/update/select พร้อม ๆกันแล้วมันทำงานไม่ได้


วิธีการแก้ปัญหา
- ไปไล่ดู query ที่มีการ join เยอะ ๆ ยาว ๆ แล้ว optimize ซะ
- ค่าที่เป็นการ lookup ให้ใช้ Cache เข้ามาช่วยเพื่อลดโหลด
- ส่วน Table lock -*- ถ้าจะแก้คงต้องแยก  master/slave ตัวนึง read อีกตัว write


หัวข้อ: Re: ใน SQL ตรง Server Status สีของ Value แต่ละ Variable มันหมายความว่ายั&
เริ่มหัวข้อโดย: HaHaHaHa ที่ 19 กรกฎาคม 2011, 18:15:57
สีแดง :: การใช้งานที่มีปัญหา ใช้เกินลิมิต ช้า เยอะ
สีดำ :: การใช้งานปกติ
สีเขียว :: การใช้งานเร็ว ปกติ มี resource เหลือกอีกเยอะ

ดูออกเป็นบางอันนะครับ

Slow_queries    36   << มีคำสั่งที่ query แล้ว DB ช้า 36 อัน
Handler_read_rnd    21 M << ใช้ ram เยอะเกินไป
Handler_read_rnd_next    112 M  << ใช้ ram เยอะเกินไป
Select_full_join    19  << มีการselect แล้วใช้การ join เต็มที่ 19 รายการ(หรือ join 19 table ไม่แน่ใจ)
Table_locks_waited    2,699 << Table ที่การ lock ระหว่างการ query คือมีติดต่อไป insert/update/select พร้อม ๆกันแล้วมันทำงานไม่ได้


วิธีการแก้ปัญหา
- ไปไล่ดู query ที่มีการ join เยอะ ๆ ยาว ๆ แล้ว optimize ซะ
- ค่าที่เป็นการ lookup ให้ใช้ Cache เข้ามาช่วยเพื่อลดโหลด
- ส่วน Table lock -*- ถ้าจะแก้คงต้องแยก  master/slave ตัวนึง read อีกตัว write
ขอบคุณมากครับ  :wanwan017: +1
ขอถามอีกน่ะครับ
วิธีการแก้นี้คือเราต้องไปแก้ไข ในไฟล์ my.cnf หรือยังไงเหรอครับผมทำไม่ค่อยเป็นครับ  :P


หัวข้อ: Re: ใน SQL ตรง Server Status สีของ Value แต่ละ Variable มันหมายความว่ายั&
เริ่มหัวข้อโดย: thenetxx ที่ 19 กรกฎาคม 2011, 23:00:32
my.cnf เป็นคอนฟิกของ mysql ครับ

สามารถช่วยได้ในระดับนึงแต่ไม่ทั้งหมด คือส่วนของการ cache query
แต่ก็ไม่ถึง 30% หรอกครับ

คงต้องปรับ code ครับ เปลี่ยนวิธีการดึงข้อมูล ปัญหา table lock อาจเป็นเพราะการใช้ update ที่เยอะเกินไปครับ


หัวข้อ: Re: ใน SQL ตรง Server Status สีของ Value แต่ละ Variable มันหมายความว่ายั&
เริ่มหัวข้อโดย: HaHaHaHa ที่ 20 กรกฎาคม 2011, 00:44:32
my.cnf เป็นคอนฟิกของ mysql ครับ

สามารถช่วยได้ในระดับนึงแต่ไม่ทั้งหมด คือส่วนของการ cache query
แต่ก็ไม่ถึง 30% หรอกครับ

คงต้องปรับ code ครับ เปลี่ยนวิธีการดึงข้อมูล ปัญหา table lock อาจเป็นเพราะการใช้ update ที่เยอะเกินไปครับ
ขอบคุณมากครับแสดงว่าปัญหาที่มันขึ้นแดงๆ ก็คือ มาจาก code ใช่ป่าวครับ
ผมต้องแก้code ในการดึงข้อมูล การอัพเดทข้อมูล sqlใหม่ ให้อัพเดทน้อยลง ใช่ป่าวครับ


หัวข้อ: Re: ใน SQL ตรง Server Status สีของ Value แต่ละ Variable มันหมายความว่ายั&
เริ่มหัวข้อโดย: thenetxx ที่ 20 กรกฎาคม 2011, 00:46:03
ถูกต้องตามนั้นครับ  :wanwan019:


หัวข้อ: Re: ใน SQL ตรง Server Status สีของ Value แต่ละ Variable มันหมายความว่ายั&
เริ่มหัวข้อโดย: HaHaHaHa ที่ 20 กรกฎาคม 2011, 02:29:07
ผมลองแก้ my.cnf แล้วตอนนี้
Slow_queries หายแดงแล้วครับกลายเป็นเลข0สีเขียว  :wanwan013:
Innodb_buffer_pool_reads ยังแดงอยู่
Handler_read_rnd แดงอยู่
Qcache_lowmem_prunes หายแดงแล้วกลายเป็นเลข0สีเขียว
Created_tmp_disk_tables  แดงเหมือนเดิม
Select_full_join    เขียว
Opened_tables    แดง
Table_locks_waited    เขียว

ที่เป็นสีแดงตัวเลขมันไม่เท่าเดิม มันจะเกี่ยวไหมครับผมลองเช็คดูตอนคนเข้าน้อยมันเลย ขึ้นจากสีแดงเป็นสีเขียวแล้วกลายเป็นเลข0
กับพวกที่ยังเป็นสีแดงอยู่แต่เลขน้อย