ใน SQL ตรง Server Status สีของ Value แต่ละ Variable มันหมายความว่ายั&

เริ่มโดย HaHaHaHa, 18 กรกฎาคม 2011, 20:48:14

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

HaHaHaHa

ใน 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

richmind

อยากรวยด้วย adsense

~~~เทพ Google Ad ~~~



HaHaHaHa


thenetxx

สีแดง :: การใช้งานที่มีปัญหา ใช้เกินลิมิต ช้า เยอะ
สีดำ :: การใช้งานปกติ
สีเขียว :: การใช้งานเร็ว ปกติ มี 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
Develop site but can't develop life
ASIA

HaHaHaHa

อ้างถึงจาก: 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
ขอบคุณมากครับ  :wanwan017: +1
ขอถามอีกน่ะครับ
วิธีการแก้นี้คือเราต้องไปแก้ไข ในไฟล์ my.cnf หรือยังไงเหรอครับผมทำไม่ค่อยเป็นครับ  :P

thenetxx

my.cnf เป็นคอนฟิกของ mysql ครับ

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

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

HaHaHaHa

อ้างถึงจาก: thenetxx ใน 19 กรกฎาคม 2011, 23:00:32
my.cnf เป็นคอนฟิกของ mysql ครับ

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

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

thenetxx

Develop site but can't develop life
ASIA

HaHaHaHa

ผมลองแก้ 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
กับพวกที่ยังเป็นสีแดงอยู่แต่เลขน้อย