Có một quy tắc về kích thước và số lượng của một thể hiện vùng đệm không?


7

Tôi biết sự đồng thuận dường như là khoảng 75% ram nên được dành riêng cho vùng đệm. Nhưng, tôi quan tâm nhiều hơn đến số lượng các trường hợp nhóm bộ đệm tối ưu. Một số điều cần xem xét khi xác định cài đặt là gì?

Ví dụ: giả sử tôi có nhóm bộ đệm 75GB. Tôi có nên chỉ định 75 trường hợp nhóm bộ đệm ở mức 1GB không? 15 ở mức 5GB mỗi cái? Hoặc, 10 ở mức 7,5 GB mỗi cái?

Tôi có nên bắt đầu với một nhóm bộ đệm duy nhất và tăng dựa trên việc tôi có thấy khóa hay không?

Số lượng phiên bản tối đa nên dựa trên các lõi có sẵn là gì?

Cảm ơn - Phản hồi của bạn được đánh giá rất cao.


Đây là một câu hỏi tuyệt vời. Gần đây tôi chưa thấy nói nhiều về một quy tắc chung quanh nhóm bộ đệm trên web. +1 !!!
RolandoMySQLDBA

Câu trả lời:


2

HỌC VIỆN BUFFER POOL

Quy tắc ngón tay cái tôi thường sử dụng dựa trên một chương trình đặc biệt trong môi trường Linux

numactl --hardware

Khi tôi chạy cái này, tôi nhận được đầu ra sau

sh-4.1# numactl --hardware
available: 4 nodes (0-3)
node 0 cpus: 0 1 2 3
node 0 size: 49151 MB
node 0 free: 241 MB
node 1 cpus: 4 5 6 7
node 1 size: 32768 MB
node 1 free: 39 MB
node 2 cpus: 8 9 10 11
node 2 size: 49152 MB
node 2 free: 49 MB
node 3 cpus: 12 13 14 15
node 3 size: 32752 MB
node 3 free: 32 MB
node distances:
node   0   1   2   3
  0:  10  16  16  16
  1:  16  10  16  16
  2:  16  16  10  16
  3:  16  16  16  10

Điều này nhanh chóng cho tôi biết tôi có bao nhiêu CPU và lõi trên Máy chủ DB của mình.

Nói chung, tôi đặt innodb_buffer_pool_instances thành số lượng CPU vật lý hoặc số lượng lõi. Nói riêng, tôi đặt innodb_buffer_pool_instances thành 4 hoặc 16.

KÍCH THƯỚC BUFFER

Nếu bạn làm cho Bộ đệm InnoDB lớn hơn 50% RAM đã cài đặt, mysqld sẽ khiến HĐH bắt đầu hoán đổi ... TRỞ LÊN !!!! Nếu bạn cần một Buffer Pool lớn như vậy, thì việc điều chỉnh innodb_buffer_pool_instances thậm chí còn trở nên quan trọng hơn.

TIẾNG VIỆT

Ngay khi innodb_buffer_pool_instances được giới thiệu lần đầu tiên, tôi đã ngay lập tức thử nghiệm nó. Tôi đã có một máy khách có Máy chủ DB 192GB, hexacore kép với Bộ đệm 162 GB. Tôi chỉ đơn giản là đặt nó thành 2 và mọi thứ đều ổn. Vui lòng xem bài viết cũ của tôi từ ngày 12 tháng 2 năm 2011 về điều này: Làm thế nào để bạn điều chỉnh MySQL cho khối lượng công việc InnoDB nặng?

HÃY THỬ MỘT LẦN !!!


Cảm ơn Rolando! - Giải thích tuyệt vời như mọi khi. Thật thú vị khi thấy tiến trình kiểm tra của bạn để tìm kích thước chính xác. Vì tò mò, kết quả hoán đổi từ kết quả của bạn là gì? Làm thế nào để bạn điều chỉnh MySQL cho một khối lượng công việc nặng của InnoDB? - Bạn đã đề cập theo dõi trong bản cập nhật mới nhất, nhưng tôi không thấy thêm bình luận nào.
dùng2732180

1

Bạn nên sử dụng kết hợp innodb_buffer_pool_sizetrong accourdance vớiinnodb_buffer_pool_instances

Bạn nên đặt innodb_buffer_pool_instancestùy chọn cấu hình thành giá trị lớn hơn 1 (mặc định) tối đa 64 (tối đa). Tùy chọn này chỉ có hiệu lực khi bạn đặt innodb_buffer_pool_sizekích thước từ 1 gigabyte trở lên. Tổng kích thước bạn chỉ định được chia cho tất cả các vùng đệm. Để có hiệu quả tốt nhất, chỉ định kết hợp innodb_buffer_pool_instancesinnodb_buffer_pool_sizesao cho mỗi phiên bản nhóm bộ đệm ít nhất là 1 gigabyte.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.