Thật thú vị, trong MySQL 5.5, giờ đây bạn có thể có nhiều nhóm bộ đệm innodb.
Các thông số bạn quan tâm là
Trong khoảng một tháng, tôi dự định sẽ thực hiện 112 vùng đệm innodb cho một khách hàng. Tôi sẽ cho bạn biết làm thế nào nó đi.
CẬP NHẬT 2011 / 02-27 21:57 EDT
Tôi đã tìm ra giá trị tối đa cho innodb_buffer_pool_instances là 64 Tôi quyết định định cấu hình 144 GB, vì vậy tôi đặt innodb_buffer_pool_instances thành 18 và innodb_buffer_pool_size thành 8. Tôi hiện đang tải máy chủ với 450 GB
CẬP NHẬT 2011-04-28 13:44 EDT
Tôi đã thử nhiều bể đệm InnoDB. Có quá nhiều khóa ren và ganh đua. Tôi đã thay đổi thành một Bộ đệm 162 GB duy nhất + cài đặt read_io_threads và write_io_threads thành 64 (giá trị tối đa). Cách này làm việc tốt hơn.
CẬP NHẬT 2012/07/03 17:27 EDT
Tôi đã học được điều gì đó tuyệt vời về MySQL. Nếu bạn phân bổ một Bộ đệm InnoDB nguyên khối duy nhất lớn hơn Tổng số được cài đặt được chia theo số lượng CPU vật lý , bạn sẽ kích hoạt HĐH để hoán đổi bộ nhớ trong khoảng thời gian thông thường do Nhóm bộ đệm InnoDB đầy đủ. Tùy chọn của MySQL 5.5 được gọi là innodb_buffer_pool_instances có thể được sử dụng để phân tách nhóm bộ đệm. Hôm qua, tôi đã thực hiện đúng điều này cho khách hàng mà tôi đã đề cập trong câu trả lời của tôi năm ngoái. Tôi vẫn còn 162GB cho Bộ đệm của khách hàng. Tôi đã đặt tùy chọn innodb_buffer_pool_instances của máy chủ thành 2 vì mỗi Máy chủ DB là hexacore kép. Tôi đã nghĩ đến việc đặt nó thành 12 nhưng sau đó một đồng nghiệp đã cho tôi xem một blog từ Jeremy Cole trên MySQL và Swappiness. Sau khi đọc nó, tôi đưa nó vào thực tế ngay lập tức cho khách hàng của tôi. Tôi đã chạy lệnh này
numactl --hardware
Tôi thấy một bản đồ 192GB RAM máy chủ là 96GB cho mỗi lõi vật lý. Do đó, tôi đặt innodb_buffer_pool_instances thành 2. Mọi thứ hiện đang tốt. Tôi sẽ cập nhật câu trả lời của mình để xem điều này ảnh hưởng đến việc hoán đổi bộ nhớ trong 2 lần tiếp theo.