Tăng kích thước nhóm bộ đệm InnoDB


11

Tôi gặp khó khăn khi đặt kích thước nhóm bộ đệm và kích thước tệp nhật ký cho MySql InnoDB. Tôi ở xa một chuyên gia MySql nhưng đã đọc xung quanh và dường như để thay đổi điều này, tôi chỉ cần thêm các dòng này vào /etc/mysql/my.cnf của tôi

# Set buffer pool size to 50-80% of your computer's memory
innodb_buffer_pool_size=2048M
innodb_additional_mem_pool_size=512M
#
# Set the log file size to about 25% of the buffer pool size
innodb_log_file_size=256M
innodb_log_buffer_size=128M

Máy chủ có khoảng 7GB bộ nhớ và cũng đang chạy một máy chủ web nên tôi nghĩ những con số này sẽ là điểm khởi đầu ổn. Sau khi lưu và khởi động lại máy chủ, có vẻ như các thay đổi đã không có hiệu lực. Tôi đã thử chạy Mysqltuner, báo cáo rằng vùng đệm vẫn ở mức 16.0M. Bất cứ ý tưởng những gì tôi đang làm sai? Hãy cho tôi biết nếu bạn muốn xem thêm tập tin cấu hình. Cảm ơn!


phân phối gì? bạn đang sử dụng các gói của distro hay cái gì khác? Làm thế nào bạn bắt đầu mysql? Nói tóm lại, bạn đã cài đặt cái gì, bạn đã cài đặt cái gì và bạn đã cài đặt nó như thế nào?
navaho

Đây là ngăn xếp đèn mặc định trên máy chủ Ubuntu x64
tgrosinger

Có một tệp cấu hình khác nằm trong / opt / lampp / etc mà tôi tin là sẽ hoạt động.
tgrosinger

Câu trả lời:


7

Hãy chắc chắn rằng những dòng đó nằm trong [mysqld]phần tức là sau [mysqld]nhưng trước bất kỳ dòng nào khác, [section]chẳng hạn như [mysqldump].


Họ đang ở đúng phần, trong [mysqld] ngay trước khi [mysqldump]
tgrosinger

2

Kiểm tra nhật ký lỗi MySQL của bạn để biết thông tin - rất có thể nằm ở /var/lib/mysql- ngoài ra, đây có phải là hệ thống 32 bit với kernel bigmem không? Nếu vậy, bạn không thể giải quyết nhiều hơn 2GB cho MySQL.

Ngoài ra - bạn sẽ muốn xác nhận từ chính MySQL về kích thước nhóm bộ đệm - 16 MB nghe có vẻ hơi sai, coi mặc định là 128M. Bạn có thể xác nhận điều này bằng cách nhập 'SHOW VARIABLES THÍCH' innodb_buffer_pool_size 'vào một phiên MySQL cho máy chủ đó. Kết quả là tính bằng byte.


Vì một số lý do tôi không thể vào được thư mục đó. Tôi có thể nhìn thấy nó khi tôi thực hiện ls trên / var / lib nhưng khi tôi cố gắng cd vào nó, tôi nhận được "quyền từ chối". Nếu tôi cố gắng cd vào như sudo thì nó báo "Không có tệp hoặc thư mục như vậy". Suy nghĩ? Nó là bản cài đặt 64 bit của Ubuntu Server.
tgrosinger

Bạn nên đăng my.cnf của bạn (/etc/my.cnf hoặc trên debian lẽ /etc/mysql/my.cnf)
thinice

Ngoài ra - bạn sẽ muốn xác nhận từ chính MySQL về kích thước nhóm bộ đệm - 16 MB nghe có vẻ hơi sai, coi mặc định là 128M. Bạn có thể xác nhận điều này bằng cách nhập 'SHOW VARIABLES THÍCH' innodb_buffer_pool_size 'vào một phiên MySQL cho máy chủ đó. Kết quả là tính bằng byte.
mỏng

1
sudo cdsẽ không hoạt động vì sudo tạo ra một nhánh con với các đặc quyền phù hợp và đóng nó khi hoàn thành, để lại cho bạn nơi bạn bắt đầu. Hãy thử sudo -sthay thế.
Ladadadada

Vì vậy, khi tôi sử dụng SHOW VARIABLES THÍCH ... nó nói kích thước vùng đệm là 16777216 mà tôi tin là trên thực tế là 16 triệu. Đây là thứ my.cnf: hastebin.com/binaqeforu.vala Cảm ơn rất nhiều!
tgrosinger

2

Trong trường hợp của tôi vấn đề là innodb_buffer_pool_instances.

Vì tôi đã giảm innodb_buffer_pool_size, nó trở thành ít hơn 1GB mỗi lần, vì vậy cuối cùng nó đã làm tròn nó.

Khi tôi cũng giảm các trường hợp , cuối cùng nó đã thay đổi kích thước nhóm !


0

Có thể bạn bắt đầu mysql với --no-defaults hoặc (-no-defaults), khiến nó không tải được cấu hình nào cả. Cũng có --defaults-file (hoặc -default-file, không chắc chắn), khiến nó tải một cấu hình cụ thể. Ngoài ra, hãy kiểm tra xem đó là cấu hình khác với cấu hình bạn chỉnh sửa.

Bạn có thể thử bắt đầu với:

--innodb_buffer_pool_size=2048M --innodb_log_buffer_size=512M

Hoặc chọn các thông số mà bạn đã bắt đầu và xem liệu một trong số chúng có làm mất cấu hình không.


Làm thế nào tôi có thể thấy nó đang bắt đầu như thế nào trong Ubuntu? Tôi đã quen với arch là tôi sẽ chỉ thêm nó vào tập tin RC.d, nhưng tôi không thấy bất cứ điều gì như thế ở đây.
tgrosinger

Arch sử dụng BSD Style init, trong khi Ubuntu sử dụng SysV init. Vì vậy, có một tệp trong /etc/init.d để khởi động nó và có thể là một tệp trong / etc / mặc định trong đó các tùy chọn đang được đặt. Bằng cách sử dụng một cái gì đó dọc theo dòng 'ps -ef | grep mysql 'bạn có thể thấy những tùy chọn hiện đang chạy với.
juwi
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.