Score:0

Mysql เขียนไปยัง binlog อย่างต่อเนื่อง ใช้พื้นที่ดิสก์อย่างรวดเร็ว

ธง in
jla

เซิร์ฟเวอร์ Ubuntu ของฉันเริ่มใช้งานการดำเนินการ IO จำนวนมาก เซิร์ฟเวอร์มีเว็บไซต์ WordPress อยู่สองสามแห่ง แต่พวกเขาได้รับการดูสูงสุดสองสามโหลต่อวัน ภายในสองสามวันใช้พื้นที่ดิสก์ 30GB

กำลังตรวจสอบ ไอโอท็อป

วิ่ง ไอโอท็อป แสดงว่า mysql เขียนลงดิสก์ตลอดเวลา ผลลัพธ์ทั่วไปเป็นดังนี้:

อ่านดิสก์ทั้งหมด: 0.00 B/s | เขียนดิสก์ทั้งหมด: 390.38 K/s
อ่านดิสก์ปัจจุบัน: 0.00 B/s | DISK WRITE ปัจจุบัน: 664.80 K/s
    TID PRIO USER DISK อ่าน DISK WRITE SWAPIN IO> คำสั่ง                                                                        
    298 be/3 ราก 0.00 B/s 0.00 B/s 0.00 % 4.79 % [jbd2/vda1-8]
    981 be/4 mysql 0.00 B/s 0.00 B/s 0.00 % 0.55 % mysqld [ib_log_flush]
    960 be/4 mysql 0.00 B/s 0.00 B/s 0.00 % 0.42 % mysqld [ib_io_wr-1]
  63310 be/4 mysql 0.00 B/s 30.92 K/s 0.00 % 0.17 % mysqld [การเชื่อมต่อ]
  62908 be/4 mysql 0.00 B/s 34.79 K/s 0.00 % 0.09 % mysqld [การเชื่อมต่อ]
  64165 be/4 mysql 0.00 B/s 34.79 K/s 0.00 % 0.07 % mysqld [การเชื่อมต่อ]
    964 be/4 mysql 0.00 B/s 185.52 K/s 0.00 % 0.05 % mysqld [ib_pg_flush_co]
    983 be/4 mysql 0.00 B/s 100.49 K/s 0.00 % 0.00 % mysqld [ib_log_writer]
  71067 be/4 www-data 0.00 B/s 3.87 K/s 0.00 % 0.00 % apache2 -k เริ่มต้น

แน่นอนการตรวจสอบใน /var/lib/mysql ไดเร็กทอรีแสดงไฟล์บินล็อกหลายร้อยไฟล์ รวมขนาดประมาณ 30GB การประทับเวลาระบุว่า mysql กำลังเขียนไปยัง binlogs ในอัตราที่ใกล้เคียงกับ 1GB ต่อชั่วโมง โดยไม่มีสัญญาณของการชะลอตัว

ตรวจสอบกระบวนการ mysql

วิ่ง mysql -p -e "แสดงรายการกระบวนการ" เพื่อดูกระบวนการ mysql ไม่พบอะไรเลย

+--------+------+----------+------+---------+---- --+-------+------------------+
| รหัส | ผู้ใช้ | โฮสต์ | ฐานข้อมูล | คำสั่ง | เวลา | รัฐ | ข้อมูล |
+--------+------+----------+------+---------+---- --+-------+------------------+
| 627525 | ราก | โลคัลโฮสต์ | โมฆะ | สอบถาม | 0 | เริ่มต้น | แสดงรายการกระบวนการ |
+--------+------+----------+------+---------+---- --+-------+------------------+

ตรวจสอบไฟล์ binlog

โดยใช้ mysqlbinlog เพื่อดูไฟล์ binlog แสดงว่าเต็มไปด้วยแฮชบางประเภท ไฟล์ทั่วไปมีลักษณะดังนี้:

# คำที่เหมาะสมคือ pseudo_replica_mode แต่เราใช้นามแฝงที่เข้ากันได้นี้
# เพื่อให้คำสั่งใช้งานได้บนเซิร์ฟเวอร์เวอร์ชัน 8.0.24 และเก่ากว่า
/*!50530 ตั้งค่า @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 ตั้งค่า @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
ตัวคั่น /*!*/;
#ที่ 4
#220515 4:09:54 รหัสเซิร์ฟเวอร์ 1 end_log_pos 126 CRC32 0x070b8f09 เริ่มต้น: binlog v 4 เซิร์ฟเวอร์ v 8.0.29-0ubuntu0.20.04.3 สร้าง 220515 4:09:54
บินล็อก '
En2AYg8BAAAAegAAAH4AAAAAAQAOC4wLjI5LTB1YnVudHUwLjIwLjA0LjMAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAEwANAAaAAAAAAEAAAAYgAEGggAAAAICAgCAAAACgoKKioAEjQA
CigAAQmPCwc=
'/*!*/;
#ที่126
#220515 4:09:54 รหัสเซิร์ฟเวอร์ 1 end_log_pos 157 CRC32 0x433aa4c9 GTID ก่อนหน้า
# [ว่างเปล่า]
#ที่157
#220515 4:09:54 รหัสเซิร์ฟเวอร์ 1 end_log_pos 236 CRC32 0x671d08bc Anonymous_GTID last_committed=0 sequence_number=1 rbr_only=yes original_committed_timestamp=1652587794635604 instant_commit_timestamp=1652587794635604 transaction_length
/*!50718 ตั้งค่าระดับการแยกการทำธุรกรรมที่ตกลงไว้อ่าน*//*!*/;
# original_commit_timestamp=1652587794635604 (2022-05-15 04:09:54.635604 UTC)
# instant_commit_timestamp=1652587794635604 (2022-05-15 04:09:54.635604 UTC)
/*!80001 SET @@session.original_commit_timestamp=1652587794635604*//*!*/;
/*!80014 SET @@session.original_server_version=80029*//*!*/;
/*!80014 SET @@session.immediate_server_version=80029*//*!*/;
ตั้งค่า @@SESSION.GTID_NEXT= 'ไม่ระบุตัวตน'/*!*/;
#ที่236
# 220515 4:09:54 รหัสเซิร์ฟเวอร์ 1 end_log_pos 334 CRC32 0x71a6c06f ข้อความค้นหา thread_id=614826 exec_time=0 error_code=0
ตั้งเวลาประทับ=1652587794/*!*/;
SET @@session.pseudo_thread_id=614826/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=1149239296/*!*/;
ตั้งค่า @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!\C utf8mb4 *//*!*/;
SET @@session.character_set_client=246,@@session.collation_connection=246,@@session.collation_server=255/*!*/;
SET @@session.lc_time_names=0/*!*/;
ตั้งค่า @@session.collation_database=DEFAULT/*!*/;
/*!80011 SET @@session.default_collation_for_utf8mb4=255*//*!*/;
เริ่ม
/*!*/;
#ที่334
#220515 4:09:54 รหัสเซิร์ฟเวอร์ 1 end_log_pos 415 CRC32 0x6976a620 Table_map: `wordpress-jessjohn`.`wp_options` แมปกับหมายเลข 81
#ที่415
#220515 4:09:54 รหัสเซิร์ฟเวอร์ 1 end_log_pos 14218 CRC32 0x8cd2158b Update_rows: ตารางรหัส 81 ค่าสถานะ: STMT_END_F

บินล็อก '
En2AYhMBAAAAUQAAAJ8BAAAAAFEAAAAAAAEEndvcmRwcmVzcy1qZXNzam9obgAKd3Bfb3B0aW9u
cwAECA/8DwX8AgRQAABAYACAfYgpnZp
En2AYh8BAAAA6zUAAIo3AAAAAFEAAAAAAAEAAgAE//8AHQAAAAAAAAANAHJld3JpdGVfcnVsZXMA
AAAAA3llcwAdAAAAAAAAAA0AcmV3cml0ZV9ydWxlc4c1AAABhOjE0MDp7czoxMToiXndwLWpzb24v
PyQiO3M6MjI6ImluZGV4LnBocD9yZXN0X3JvdXRlPS8iO3M6MTQ6Il53cC1qc29uLyguKik/Ijtz
OjMzOiJpbmRleC5waHA/cmVzdF9yb3V0ZT0vJG1hdGNoZXNbMV0iO3M6MjE6Il5pbmRleC5waHAv
d3AtanNvbi8/JCI7czoyMjoiaW5kZXgucGhwP3Jlc3Rfcm91dGU9LyI7czoyNDoiXmluZGV4LnBo
cC93cC1qc29uLyguKik/IjtzOjMzOiJpbmRleC5waHA/cmVzdF9yb3V0ZT0vJG1hdGNoZXNbMV0i
O3M6MTc6Il53cC1zaXRlbWFwXC54bWwkIjtzOjIzOiJpbmRleC5waHA/c2l0ZW1hcD1pbmRleCI7

...245บรรทัดนี้...

dD0kbWF0Y2hlc1sxXSZjcGFnZT0kbWF0Y2hlc1syXSI7czoyMjoiW14vXSsvKFteL10rKS9lbWJl
ZC8/JCI7czo0MzoiaW5kZXgucGhwP2F0dGFjaG1lbnQ9JG1hdGNoZXNbMV0mZW1iZWQ9dHJ1ZSI7
fQN5ZXOLFdKM
'/*!*/;
#ที่14218
#220515 4:09:54 รหัสเซิร์ฟเวอร์ 1 end_log_pos 14249 CRC32 0x322d3658 Xid = 18716628
ให้สัญญา/*!*/;
#ที่14249
#220515 4:09:54 รหัสเซิร์ฟเวอร์ 1 end_log_pos 14329 CRC32 0xc4b6c15a Anonymous_GTID last_committed=1 sequence_number=2 rbr_only=yes original_committed_timestamp=1652587794702570 instant_commit_timestamp=1652587794702570 transaction_length14
/*!50718 ตั้งค่าระดับการแยกการทำธุรกรรมที่ตกลงไว้อ่าน*//*!*/;
# original_commit_timestamp=1652587794702570 (2022-05-15 04:09:54.702570 UTC)
# instant_commit_timestamp=1652587794702570 (2022-05-15 04:09:54.702570 UTC)
/*!80001 SET @@session.original_commit_timestamp=1652587794702570*//*!*/;
/*!80014 SET @@session.original_server_version=80029*//*!*/;
/*!80014 SET @@session.immediate_server_version=80029*//*!*/;
ตั้งค่า @@SESSION.GTID_NEXT= 'ไม่ระบุตัวตน'/*!*/;
#ที่14329
# 220515 4:09:54 รหัสเซิร์ฟเวอร์ 1 end_log_pos 14427 CRC32 0x1328bf8c ข้อความค้นหา thread_id=614825 exec_time=0 error_code=0
ตั้งเวลาประทับ=1652587794/*!*/;
เริ่ม
/*!*/;
# ที่ 14427
#220515 4:09:54 server id 1 end_log_pos 14507 CRC32 0x64436ee3 Table_map: `wordpress-jessjohn`.`wp_usermeta` จับคู่กับหมายเลข 95
# ที่ 14507
#220515 4:09:54 รหัสเซิร์ฟเวอร์ 1 end_log_pos 114362 CRC32 0xec16092b Update_rows: ตาราง id 95 แฟล็ก: STMT_END_F

บินล็อก '
En2AYhMBAAAAUAAAAKs4AAAAAF8AAAAAAAEEndvcmRwcmVzcy1qZXNzam9obgALd3BfdXNlcm1l
dGEABagID/wD/AMEDAEBwAIB9uNuQ2Q=
En2AYh8BAAAAD4YBALq+AQAAAF8AAAAAAAEAAgAE//8ANwAAAAAAAAABAAAAAAAAAA4Ac2Vzc2lv

... และอื่น ๆ อีก >200 บรรทัด

อะไรเป็นสาเหตุของการบันทึกทั้งหมดนี้

ฉันไม่ค่อยคุ้นเคยกับการบันทึก mysql ดังนั้นไม่แน่ใจว่าจะไปจากที่ไหน ฉันคิดว่าการแก้ไขด่วนคือการปิดการออกจากระบบ ฉันไม่เข้าใจว่าไฟล์ binlog กำลังพูดอะไร หรืออะไรเป็นสาเหตุที่ทำให้มีการบันทึกจำนวนมาก

Wilson Hauck avatar
jp flag
โปรดขอข้อมูลเพิ่มเติม ขนาด RAM, # คอร์, SSD หรืออุปกรณ์ NVME บนเซิร์ฟเวอร์โฮสต์ MySQL หรือไม่ โพสต์บน pastebin.com และแชร์ลิงก์ จากรูทการเข้าสู่ระบบ SSH ของคุณ ผลลัพธ์ข้อความของ: A) SELECT COUNT(*) FROM information_schema.tables; B) แสดงสถานะทั่วโลก; หลังจาก UPTIME อย่างน้อย 24 ชั่วโมง C) แสดงตัวแปรทั่วโลก; D) แสดงรายการกระบวนการทั้งหมด; และข้อมูล OS ที่มีประโยชน์มาก ได้แก่ - htop OR top สำหรับแอปที่มีการใช้งานมากที่สุด ulimit -a สำหรับรายการขีดจำกัด iostat -xm 5 3 สำหรับ IOPS ตามจำนวนอุปกรณ์ & คอร์/ซีพียู สำหรับการวิเคราะห์การปรับ Binlog ของเซิร์ฟเวอร์เพื่อให้คำแนะนำ
ua flag
คุณมีแบบจำลองหรือไม่? "server_id" คืออะไร
Score:1
ธง in

Binlogs ใน MySQL ใช้สำหรับการจำลองแบบระหว่างมาสเตอร์และทาส หากคุณไม่ได้ใช้สถาปัตยกรรมดังกล่าว คุณสามารถปิดใช้งานได้โดยดำเนินการดังนี้:

ตั้งค่า sql_log_bin = 0;

หากคุณมีโครงสร้างดังกล่าว คุณสามารถแยกระเบียนเก่า (จำลองไว้แล้ว) โดยใช้คำสั่งเช่น:

ล้างบันทึกไบนารีก่อน '2019-04-02 22:46:26';

หรือ

ล้างบันทึกไบนารีเป็น 'mysql-bin.010';

สำหรับข้อมูลเพิ่มเติมคุณสามารถใช้ คำตอบนี้.

โพสต์คำตอบ

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