close

MariaDB Advance: InnoDB Buffer Pool

Tác giả: Dương Xuân Ngày cập nhật: 13/02/2020 Chuyên mục:
Disclosure
Website Wiki.tino.org được cung cấp bởi Tino Group. Truy cập và sử dụng website đồng nghĩa với việc bạn đồng ý với các điều khoản và điều kiện trong chính sách bảo mật - điều khoản sử dụng nội dung. Wiki.tino.org có thể thay đổi điều khoản sử dụng bất cứ lúc nào. Việc bạn tiếp tục sử dụng Wiki.tino.org sau khi thay đổi có nghĩa là bạn chấp nhận những thay đổi đó.
Why Trust Us
Các bài viết với hàm lượng tri thức cao tại wiki.tino.org được tạo ra bởi các chuyên viên Marketing vững chuyên môn và được kiểm duyệt nghiêm túc theo chính sách biên tập bởi đội ngũ biên tập viên dày dặn kinh nghiệm. Mọi nỗ lực của chúng tôi đều hướng đến mong muốn mang đến cho cộng đồng nguồn thông tin chất lượng, chính xác, khách quan, đồng thời tuân thủ các tiêu chuẩn cao nhất trong báo cáo và xuất bản.

Nhóm bộ đệm XtraDB / InnoDB là thành phần chính để tối ưu hóa MariaDB. Nó lưu trữ dữ liệu và chỉ mục, và bạn thường muốn nó càng lớn càng tốt để giữ càng nhiều dữ liệu và indexes trong bộ nhớ, giảm IO đĩa, như là nút cổ chai (bottleneck).

Cách Buffer Pool hoạt động

Buffer Pool cố gắng giữ các khối được sử dụng thường xuyên trong bộ đệm và về cơ bản hoạt động như hai danh sách con, danh sách con mới của thông tin được sử dụng gần đây và danh sách con cũ của thông tin cũ. Theo mặc định, 37% danh sách được dành riêng cho danh sách cũ.

Khi thông tin mới được truy cập không xuất hiện trong danh sách nào cả, lúc đó nó sẽ được đặt ở đầu danh sách cũ, mục cũ nhất trong danh sách cũ sẽ bị xóa.

Khi thông tin được truy cập xuất hiện trong danh sách cũ, nó sẽ được chuyển lên đầu danh sách mới và mọi thứ ở trên sẽ di chuyển xuống một vị trí dưới thông tin vừa được nạp.

innodb_buffer_pool_size

Server system variable máy chủ quan trọng nhất là innodb_buffer_pool_size , bạn có thể đặt từ 70-80% tổng ram khả dụng trên một máy chủ cơ sở dữ liệu chuyên dụng chỉ có hoặc chủ yếu là các bảng XtraDB / InnoDB.

Lưu ý rằng tổng ram được phân bổ nhiều hơn khoảng 10% so với kích thước đã chỉ định vì không gian thêm cũng được dành cho các cấu trúc điều khiển và bộ đệm.

Kích thước càng lớn, thời gian khởi tạo càng lâu. Trên máy chủ 64 bit hiện đại có bộ nhớ 10GB, quá trình này có thể mất năm giây trở lên để khởi động.

Đảm bảo rằng kích thước Buffer Pool không quá lớn để tránh trường hợp không đủ ram dẫn đến hệ điều hành kill dịch vụ.

innodb_buffer_pool_instances

Nếu innodb_buffer_pool_size được đặt thành hơn 1GB, innodb_buffer_pool_instances chia nhóm bộ đệm InnoDB thành một số trường hợp cụ thể. Mặc định là 1 trong MariaDB 5.5, nhưng đối với các hệ thống lớn có vùng đệm nhiều gigabyte, nhiều trường hợp có thể giúp giảm sự tranh chấp. Mặc định là 8 trong MariaDB 10.0,   tùy thuộc vào giá trị của innodb_buffer_pool_size. Mỗi phiên bản quản lý các cấu trúc dữ liệu của riêng nó và chiếm một phần bằng nhau trong tổng kích thước nhóm bộ đệm, vì vậy, ví dụ nếu innodb_buffer_pool_size là 4GB và innodb_buffer_pool_instances được đặt thành 4, mỗi phiên bản sẽ là 1GB. Mỗi trường hợp lý tưởng nên có kích thước tối thiểu 1GB.

Ví dụ: bạn có thể đặt innodb_buffer_pool_size thành 6 GB và innodb_buffer_pool_instances thành 4 trong tệp tin cấu hình my.cnf MariaDB của bạn:
; InnoDB buffer pool size in bytes. The primary value to adjust on a database server,
; can be set up to 80% of the total memory in these environments
innodb_buffer_pool_size = 6000M
;  If innodb_buffer_pool_size is set to more than 1GB, innodb_buffer_pool_instances
; divides the InnoDB buffer pool into this many instances.
innodb_buffer_pool_instances = 4

Điều này có ngĩa là mỗi pool sẽ có 1,5GB để lưu trữ dữ liệu trên ram.

Bài viết liên quan

CÔNG TY CỔ PHẦN TẬP ĐOÀN TINO
Trụ sở chính: L17-11, Tầng 17, Tòa nhà Vincom Center, Số 72 Lê Thánh Tôn,  Phường Bến Nghé, Q. 1, TP. Hồ Chí Minh

Văn phòng kinh doanh: Số 42 Trần Phú, Phường 4, Quận 5, TP HCM
GPKD số 0315679836 do Sở KH và ĐT TP Hồ Chí Minh cấp
Hotline: 0364 333 333
Góp ý/Phản ánh dịch vụ: 0933 000 886