BMS-HOSxP Community

HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: C H O K E ที่ สิงหาคม 01, 2013, 12:41:45 PM

หัวข้อ: ระบบช้า จาก Table Locked
เริ่มหัวข้อโดย: C H O K E ที่ สิงหาคม 01, 2013, 12:41:45 PM
วันนี้ที่ รพ. เวลาประมาณ 10 โมงกว่าๆ เกิดปัญหา Hosxp ช้าทั้งระบบ จะเป็นเวลาบันทึก

จากการตรวจสอบเจอปัญหา เวลาบันทึกแล้ว ระบบจะเขียนคำสั่งไปเก็บไว้ในตาราง replicate_log  มีข้อความว่า Locked ขึ้นที่คอลัมน์ State จึงคิดว่าปัญหาน่าจะเกิดจากตรงนี้แหละ  ก็แก้ปัญหาด้วยการเข้าไปเครียข้อมูลใน replicate_log และต้อง restart mysql ด้วย ถึงจะหาย (คืนนี้อาจจะต้องทำ optimize table ต่อ)

จึงอยากจะสอบถาม เพื่อหาทางป้องกันไม่ให้เกิดอีก เพราะวุ่นวายมาก ผอ.ถึงกับต้องขึ้นมาดูด้วยตัวเอง
1. สาเหตุที่เกิดการ Locked เป็นเพราะอะไรครับ (อาจต้องโดนสอบถาม)
2. จะป้องกันไม่ให้เกิดปัญหานี้ได้อย่างไรครับ (เพราะจากที่โทรไปถาม มันสามารถเกิดกับตารางอื่นๆได้ด้วย)

ผมใช้ hosxp เวอร์ชั่น 56.6.20c  อัพมาได้หลายสัปดาห์แล้วใช้งานได้ปกติดี   mysql  เป็น percona 5.1.65
หัวข้อ: Re: ระบบช้า จาก Table Locked
เริ่มหัวข้อโดย: manoi ที่ สิงหาคม 01, 2013, 12:44:47 PM
statement บรรทัดแรก มาจากไหนครับ
หัวข้อ: Re: ระบบช้า จาก Table Locked
เริ่มหัวข้อโดย: C H O K E ที่ สิงหาคม 01, 2013, 12:48:00 PM
ในรูปผมไม่ได้ capture ตอนที่มันเกิดปัญหามาให้ดูครับ เพราะตอนนั้นคิดไม่ทันครับ
แต่ผมดูมันมีคำว่า Locked ตรงคำสั่งที่เขียนลงในตาราง replicate_log นะครับ
หัวข้อ: Re: ระบบช้า จาก Table Locked
เริ่มหัวข้อโดย: manoi ที่ สิงหาคม 02, 2013, 13:13:04 PM
ทำไมถึงคิดว่ามีค่าที่ไม่เหมาะสมครับ และค่าที่คิดว่าไม่เหมาะสมคือ ?
หัวข้อ: Re: ระบบช้า จาก Table Locked
เริ่มหัวข้อโดย: Sukjai ที่ สิงหาคม 02, 2013, 13:17:46 PM
ทำไมถึงคิดว่ามีค่าที่ไม่เหมาะสมครับ และค่าที่คิดว่าไม่เหมาะสมคือ ?

---------------------------------------------------------------------------------------------------------------------------
อย่างเช่น = ค่า max_connections=1000 ครับซึ่งโปรแกรมกำหนดมาให้ 1,000 ซึ่งความเป็นจริงแล้ว บางโรงพยาบาลไม่จำเป็นต้องใช้เยอะถึงขนาดนั้นครับผม
หัวข้อ: Re: ระบบช้า จาก Table Locked
เริ่มหัวข้อโดย: C H O K E ที่ สิงหาคม 02, 2013, 13:20:34 PM
จากปัญหาของผม  ผมสรุปเองเลยละกันได้ดังนี้

1. ปัญหาเกิดจาก ตาราง replicate_log เต็มหรือใหญ่เกินไป จนทำให้ไม่สามารถ insert ข้อมูลเข้าไปได้หรือเข้าไปได้แต่ช้ามากๆ จึงทำให้ระบบทั้งหมดช้าไปด้วย

2. ปกติถ้าตาราง replicate_log ใหญ่โปรแกรมจะมี popup เตือนให้เรา clear แต่เมื่อวานไม่มีเตือน  
จึงสันนิษฐานเอาเองว่า ตอนที่ login เข้าไป ตาราง replicate_log มันยังไม่ใหญ่ แต่พอใช้ไปสักพักตารางเกิดใหญ่เลยเกิดการ LOCKED และไม่มีการแจ้งเตือน

3. ตอนนี้จึงหาทางแก้ป้องกันด้วยตัวเอง คือ ให้เข้ามา clear ตาราง replicate_log ทุกๆ 3 วัน
หัวข้อ: Re: ระบบช้า จาก Table Locked
เริ่มหัวข้อโดย: C H O K E ที่ สิงหาคม 02, 2013, 13:24:11 PM
เมื่อวานผมก็ไม่ได้แก้อะไรใน my.cnf เลย  วันนี้นั่ง monitor ดูตั้งแต่เช้าก็ปกติดีครับ
หัวข้อ: Re: ระบบช้า จาก Table Locked
เริ่มหัวข้อโดย: dotAtainer ที่ สิงหาคม 02, 2013, 13:37:55 PM
อาการ lock มันเกิดได้หลายสาเหตุครับอยู่ดีๆมันจะไม่เกิดขึ้นมาเองแม้กระทั้งตาราง Replicate_log  โตขนาดไหนถ้าไม่ถึงขนาดเต็ม Hdd ก็ไม่น่าจะมีผลกระทบ เท่าที่พอเป็นไปได้คือ ดึงรายงานย้อนหลังเยอะเกินไป , มี software บางอย่างที่มีปัญหาการเชื่อมต่อแล้ว loop back  มาที่ server จนหน่วงมากๆ , หรือฐานข้อมูลส่วนใหญ่เป็น myisam ซึ่งฐานชนิดนี้มักจะเกิดอาการ deadlock เนื่องจากประมวลผลการคิวรี่ข้อมูลปริมาณมากๆจนทำงานไม่ทัน