Điểm:0

Mysql liên tục ghi vào binlog, nhanh chóng sử dụng hết dung lượng ổ đĩa

lá cờ in
jla

Máy chủ Ubuntu của tôi bắt đầu chạy một lượng lớn hoạt động IO. Máy chủ có một vài trang web WordPress trên đó, nhưng chúng nhận được nhiều nhất vài chục lượt xem mỗi ngày. Trong vài ngày, 30GB dung lượng ổ đĩa đã được sử dụng.

kiểm tra iot

Đang chạy iot cho thấy mysql liên tục ghi vào đĩa. Một đầu ra điển hình là như thế này:

Tổng ĐỌC ĐĨA: 0,00 B/s | Tổng tốc độ GHI ĐĨA: 390,38 K/s
ĐỌC ĐĨA hiện tại: 0,00 B/s | TỐC ĐỘ GHI ĐĨA HIỆN TẠI: 664,80 K/s
    ĐĨA NGƯỜI DÙNG TID TRƯỚC ĐỌC ĐĨA GHI SWAPIN IO> LỆNH                                                                        
    298 be/3 root 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 [kết nối]
  62908 be/4 mysql 0,00 B/s 34,79 K/s 0,00 % 0,09 % mysqld [kết nối]
  64165 be/4 mysql 0,00 B/s 34,79 K/s 0,00 % 0,07 % mysqld [kết nối]
    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 dữ liệu www 0,00 B/s 3,87 K/s 0,00 % 0,00 % apache2 -k bắt đầu

Thật vậy, kiểm tra trong /var/lib/mysql thư mục hiển thị hàng trăm tệp binlog, tổng kích thước khoảng 30 GB. Dấu thời gian chỉ ra rằng mysql đang ghi vào binlog với tốc độ gần 1GB mỗi giờ, không có dấu hiệu chậm lại.

Kiểm tra quy trình mysql

Đang chạy mysql -p -e "hiển thị danh sách quy trình" để xem các quy trình mysql không hiển thị gì.

+---------+------+----------+------+---------+---- --------+-------+------------------+
| ID | Người dùng | Người dẫn chương trình | đb | Lệnh | Thời gian | Nhà nước | Thông tin |
+---------+------+----------+------+---------+---- --------+-------+------------------+
| 627525 | gốc | máy chủ cục bộ | NULL | Truy vấn | 0 | ban đầu | hiển thị danh sách quy trình |
+---------+------+----------+------+---------+---- --------+-------+------------------+

Kiểm tra các tập tin binlog

sử dụng mysqlbinlog để xem các tệp binlog cho thấy chúng chứa đầy một số loại băm. Một tệp điển hình trông giống như:

# Thuật ngữ thích hợp là pseudo_replica_mode, nhưng chúng tôi sử dụng bí danh tương thích này
# để làm cho câu lệnh có thể sử dụng được trên máy chủ phiên bản 8.0.24 trở lên.
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
KHỬ MÙI /*!*/;
# lúc 4
#220515 4:09:54 id máy chủ 1 end_log_pos 126 CRC32 0x070b8f09 Bắt đầu: binlog v 4, máy chủ v 8.0.29-0ubuntu0.20.04.3 được tạo 220515 4:09:54
BINLOG'
En2AYg8BAAAAegAAAH4AAAAAAAAQAOC4wLjI5LTB1YnVudHUwLjIwLjA0LjMAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAEwANAAgAAAAABAAEAAAAYgAEGggAAAAICAgCAAAACgoKKioAEjQA
CigAAQmPCwc=
'/*!*/;
# tại 126
#220515 4:09:54 id máy chủ 1 end_log_pos 157 CRC32 0x433aa4c9 GTID trước đó
# [trống rỗng]
# tại 157
#220515 4:09:54 id máy chủ 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=14092
/*!50718 THIẾT LẬP MỨC CÁCH MẠNG GIAO DỊCH ĐỌC CAM KẾT*//*!*/;
# 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*//*!*/;
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
# tại 236
#220515 4:09:54 id máy chủ 1 end_log_pos 334 CRC32 0x71a6c06f Truy vấn thread_id=614826 exec_time=0 error_code=0
ĐẶT DẤU THỜI GIAN=1652587794/*!*/;
ĐẶT @@session.pseudo_thread_id=614826/*!*/;
ĐẶT @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
ĐẶT @@session.sql_mode=1149239296/*!*/;
ĐẶT @@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/*!*/;
ĐẶT @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
/*!80011 SET @@session.default_collation_for_utf8mb4=255*//*!*/;
BẮT ĐẦU
/*!*/;
# tại 334
#220515 4:09:54 id máy chủ 1 end_log_pos 415 CRC32 0x6976a620 Table_map: `wordpress-jessjohn`.`wp_options` được ánh xạ tới số 81
# tại 415
#220515 4:09:54 id máy chủ 1 end_log_pos 14218 CRC32 0x8cd2158b Update_rows: id bảng 81 cờ: STMT_END_F

BINLOG'
En2AYhMBAAAAUQAAAJ8BAAAAAFEAAAAAAAEAEendvcmRwcmVzcy1qZXNzam9obgAKd3Bfb3B0aW9u
cwAECA/8DwX8AgRQAAABAYACAfYgpnZp
En2AYh8BAAAA6zUAAIo3AAAAAFEAAAAAAAEAAgAE//8AHQAAAAAAAAANAHJld3JpdGVfcnVsZXMA
AAAAA3llcwAdAAAAAAAAAA0AcmV3cml0ZV9ydWxlc4c1AABhOjE0MDp7czoxMToiXndwLWpzb24v
PyQiO3M6MjI6ImluZGV4LnBocD9yZXN0X3JvdXRlPS8iO3M6MTQ6Il53cC1qc29uLyguKik/Ijtz
OjMzOiJpbmRleC5waHA/cmVzdF9yb3V0ZT0vJG1hdGNoZXNbMV0iO3M6MjE6Il5pbmRleC5waHAv
d3AtanNvbi8/JCI7czoyMjoiaW5kZXgucGhwP3Jlc3Rfcm91dGU9LyI7czoyNDoiXmluZGV4LnBo
cC93cC1qc29uLyguKik/IjtzOjMzOiJpbmRleC5waHA/cmVzdF9yb3V0ZT0vJG1hdGNoZXNbMV0i
O3M6MTc6Il53cC1zaXRlbWFwXC54bWwkIjtzOjIzOiJpbmRleC5waHA/c2l0ZW1hcD1pbmRleCI7

... 245 dòng này ...

dD0kbWF0Y2hlc1sxXSZjcGFnZT0kbWF0Y2hlc1syXSI7czoyMjoiW14vXSsvKFteL10rKS9lbWJl
ZC8/JCI7czo0MzoiaW5kZXgucGhwP2F0dGFjaG1lbnQ9JG1hdGNoZXNbMV0mZW1iZWQ9dHJ1ZSI7
fQN5ZXOLFdKM
'/*!*/;
# tại 14218
#220515 4:09:54 id máy chủ 1 end_log_pos 14249 CRC32 0x322d3658 Xid = 18716628
LÀM/*!*/;
# tại 14249
#220515 4:09:54 id máy chủ 1 end_log_pos 14329 CRC32 0xc4b6c15a Anonymous_GTID last_committed=1 sequence_number=2 rbr_only=yes original_committed_timestamp=1652587794702570 ngay lập tức_commit_timestamp=1652587794702570 transaction_length44=100
/*!50718 THIẾT LẬP MỨC CÁCH MẠNG GIAO DỊCH ĐỌC CAM KẾT*//*!*/;
# 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*//*!*/;
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
# tại 14329
#220515 4:09:54 id máy chủ 1 end_log_pos 14427 CRC32 0x1328bf8c Truy vấn thread_id=614825 exec_time=0 error_code=0
ĐẶT DẤU THỜI GIAN=1652587794/*!*/;
BẮT ĐẦU
/*!*/;
# tại 14427
#220515 4:09:54 id máy chủ 1 end_log_pos 14507 CRC32 0x64436ee3 Table_map: `wordpress-jessjohn`.`wp_usermeta` được ánh xạ tới số 95
# tại 14507
#220515 4:09:54 id máy chủ 1 end_log_pos 114362 CRC32 0xec16092b Update_rows: id bảng 95 cờ: STMT_END_F

BINLOG'
En2AYhMBAAAAAUAAAAKs4AAAAAF8AAAAAAAEAEendvcmRwcmVzcy1qZXNzam9obgALd3BfdXNlcm1l
dGEABAgID/wD/AMEDAEBwAIB9uNuQ2Q=
En2AYh8BAAAAD4YBALq+AQAAAF8AAAAAAAEAAgAE//8ANwAAAAAAAAABAAAAAAAAAA4Ac2Vzc2lv

... và cứ thế cho >200 dòng khác

Điều gì gây ra tất cả việc ghi nhật ký này?

Tôi không quen lắm với việc ghi nhật ký mysql nên không biết phải đi đâu từ đây. Tôi cho rằng cách khắc phục nhanh là chỉ cần tắt đăng nhập. Tôi không hiểu các tệp binlog đang nói gì hoặc điều gì có thể khiến quá nhiều thứ được ghi lại.

Wilson Hauck avatar
lá cờ jp
Yêu cầu thông tin bổ sung, xin vui lòng. Kích thước RAM, # lõi, mọi thiết bị SSD hoặc NVME trên máy chủ MySQL Host? Đăng trên pastebin.com và chia sẻ các liên kết. Từ thư mục gốc đăng nhập SSH của bạn, Kết quả văn bản của: A) SELECT COUNT(*) FROM information_schema.tables; B) HIỂN THỊ TRẠNG THÁI TOÀN CẦU; sau tối thiểu 24 giờ THỜI GIAN TỐI THIỂU C) HIỂN THỊ CÁC BIẾN TOÀN CẦU; D) HIỂN THỊ ĐẦY ĐỦ QUY TRÌNH; VÀ thông tin hệ điều hành rất hữu ích, bao gồm - htop HOẶC hàng đầu cho hầu hết các ứng dụng đang hoạt động, ulimit -a cho danh sách các giới hạn, iostat -xm 5 3 cho IOPS theo số lượng thiết bị và lõi/cpu, để phân tích điều chỉnh binlog của máy chủ nhằm cung cấp các đề xuất.
lá cờ ua
Bạn có một bản sao? "server_id" của nó là gì?
Điểm:1
lá cờ in

Binlog trong MySQL được sử dụng để sao chép giữa (các) chủ và nô lệ. Nếu bạn không sử dụng kiến ​​trúc như vậy, bạn có thể vô hiệu hóa nó bằng cách thực hiện điều này:

ĐẶT sql_log_bin = 0;

Nếu bạn có cấu trúc như vậy, bạn có thể loại bỏ các bản ghi cũ (đã được sao chép) bằng cách sử dụng lệnh như:

XÓA NHIỆM NHIỆM NHỊP TRƯỚC '2019-04-02 22:46:26';

hoặc

PURGE NHẬT KÝ NHIỆM VỤ ĐẾN 'mysql-bin.010';

Để biết thêm thông tin, bạn có thể sử dụng câu trả lời này.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.