Số lượng phiên bản nhóm bộ đệm nên được tăng lên để tránh sự tranh chấp đột biến của vùng đệm.
Với kích thước nhóm bộ đệm 8GB, tôi nghi ngờ bạn sẽ không bao giờ thấy sự tranh chấp của vùng đệm.
CẬP NHẬT 0 :
Tôi đề cập đến nhóm bộ đệm 8Gb trong câu trả lời trong khi trong câu hỏi ban đầu, tổng bộ nhớ là 8GB. Chắc chắn, vùng đệm phải nhỏ hơn 8GB. 4GB có vẻ như là một khởi đầu tốt nhưng đảm bảo không xảy ra hoán đổi.
CẬP NHẬT 1 :
// từ các slide của Yasufumi (trong các phiên bản MySQL gần đây, đầu ra có thể hơi khác nhau)
Để xác định xem có sự tranh chấp trên vùng đệm của bộ đệm hay không, hãy thu thập hàng tá SHOW ENGINE INNODB STATUS
mẫu trong thời gian cao điểm.
Sau đó tổng hợp nó bằng cách sử dụng đoạn mã shell:
#!/bin/sh
cat $1.innodb | grep "Mutex at " | cut -d"," -f1 | sort | uniq -c > /tmp/tmp1.txt
cat $1.innodb | grep "lock on " | cut -d"-"
-f2- | sort | uniq -c > /tmp/tmp2.txt
cat /tmp/tmp1.txt /tmp/tmp2.txt | sort -n > $1.contention rm /tmp/tmp1.txt /tmp/tmp2.txt
cung cấp đầu ra như thế này:
.....
4 lock on RW-latch at 0x7fb86b2c9138 created in file dict/dict0dict.c line 1356
6 lock on RW-latch at 0x7fb86b2c4138 created in file dict/dict0dict.c line 1356
12 lock on RW-latch at 0x7fb86b2d9538 created in file dict/dict0dict.c line 1356
20 lock on RW-latch at 0x7fb86b2db138 created in file dict/dict0dict.c line 1356
22 Mutex at 0x7fb86b28f0e0 created file btr/btr0sea.c line 139
30 lock on RW-latch at 0x7fb86b2ba938 created in file dict/dict0dict.c line 1356
36 lock on RW-latch at 0x7fb86b2bad38 created in file dict/dict0dict.c line 1356
71 Mutex at 0x7fb86b28ecb8 created file buf/buf0buf.c line 597
164 lock on RW-latch at 0x7fb86b28f0b8 created in file btr/btr0sea.c line 139
Nếu bạn thấy số lượng lớn bộ đệm của vùng đệm chờ đợi, thì đã đến lúc xem xét nhiều trường hợp nhóm bộ đệm. Sự tranh chấp không có khả năng xảy ra trên một vùng đệm nhỏ hơn ~ 48G.