Score:0

ตรวจสอบการใช้งาน Byte ของพูลบัฟเฟอร์ MySQL InnoDB ขนาดใหญ่หรือไม่

ธง jp
Vjz

ฉันกำลังพยายามตรวจสอบจำนวนไบต์ที่ใช้ใน MySQL 5.7 InnoDB Buffer Pool ซึ่งสามารถเพิ่มได้สูงสุด 100GB โดยใช้ Innodb_buffer_pool_bytes_data แต่ดูเหมือนว่าตัวแปรสถานะนี้เป็นจำนวนเต็ม 32 บิตที่ไม่ได้ลงนามเมื่อฉันสอบถาม ดังนั้นมันจึงโอเวอร์โฟลว์เมื่อไบต์เกิน 2^32

ดูเหมือนว่าจะเป็นจำนวนเต็มยาวที่ไม่ได้ลงชื่อภายใน MySQL (https://github.com/mysql/mysql-server/blob/5.7/storage/innobase/include/srv0srv.h#L892)?

ตอนแรกฉันคิดว่าการล้นอยู่ในสแต็กการตรวจสอบของฉัน (Telegraf+InfluxDB+Grafana)-

Grafana Graph แสดง Interger Overflow เมื่อเวลาผ่านไป โดยที่ Innodb_buffer_pool_bytes_data มีขนาด 490MB ในปัจจุบัน

- แต่การสอบถาม MySQL โดยตรงดูเหมือนว่าจะเปิดเผยว่ามาจาก MySQL ไม่ใช่ในโซลูชันการตรวจสอบของฉัน:

แสดงสถานะทั่วโลกโดยที่ Variable_name = "Innodb_buffer_pool_bytes_data"

-ผลผลิต 490371968 สำหรับการประทับเวลาตัวอย่างเดียวกันกับที่เห็นใน Grafana ด้านบน

จะตรวจสอบมูลค่าที่แท้จริงได้อย่างไร?

Vjz avatar
jp flag
Vjz
`แสดงตัวแปรทั่วโลกโดยที่ Variable_name = 'innodb_buffer_pool_size'` 107374182400
ua flag
บางทีคุณอาจมีการรวบรวม MySQL หรือ OS หรือ Grafana แบบ 32 บิต
ua flag
คุณมี RAM เท่าไหร่?
ua flag
ค่าของ `SHOW VARIABLES LIKE 'innodb_buffer_pool_size';` คืออะไร อาจจะประมาณ 500M ?
Vjz avatar
jp flag
Vjz
`แสดงตัวแปรเช่น 'version_compile_os'` version_compile_os คือ Win64 `แสดงตัวแปรทั่วโลกโดยที่ Variable_name = 'innodb_buffer_pool_size'` innodb_buffer_pool_size คือ 107374182400 ไบต์ (~107GB) เซิร์ฟเวอร์มี RAM 130GB เซิร์ฟเวอร์ไม่ได้รีสตาร์ทในเวลาดังกล่าว ไม่มีการกล่าวถึงการรีสตาร์ทในล็อกไฟล์ MySQL ใช้grafana-8.1.5.windows-amd64. แม้ว่า Grafana จะเป็นแบบ 32 บิตก็ตาม แม้แต่การค้นหา `Innodb_buffer_pool_bytes_data` โดยตรงกับไคลเอนต์ MySQL ก็ยังพบปัญหา ซึ่งหมายความว่าไม่ใช่ Grafana @ริค เจมส์
ua flag
ตรวจสอบ `SHOW STATUS LIKE 'Innodb_buffer_pool_bytes_data' ด้วยตนเอง เพื่อรับข้อมูลเชิงลึกเพิ่มเติมเกี่ยวกับสิ่งที่เกิดขึ้น (ฉันเดาว่าฉันไม่รู้คำตอบ)
Score:0
ธง ua

กราฟนั้นดูเหมือนว่า MySQL จะรีสตาร์ท (หรือเซิร์ฟเวอร์รีสตาร์ท) ในเวลาประมาณ 12:16 น. buffer_pool จะเติบโตจนกว่าจะถึง innodb_buffer_pool_size.

หากคุณมี RAM ไม่เพียงพอสำหรับ buffer_pool (รวมทั้งสิ่งอื่นๆ) ก็อาจเกิดปัญหาได้ การตั้งค่านั้นควรตั้งค่าไว้ที่ประมาณ 70% ของ RAM ที่มีอยู่

Vjz avatar
jp flag
Vjz
เซิร์ฟเวอร์ไม่ได้รีสตาร์ทในเวลาดังกล่าว ไม่มีการกล่าวถึงการรีสตาร์ทในล็อกไฟล์ MySQL ดูความคิดเห็นอื่น ๆ ของฉันเกี่ยวกับคำถาม

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา