Chỉ để có được một số phối cảnh trích xuất tập tin cấu hình của bạn, tôi đã so sánh với giá trị mặc định ( 1 , 2 ). Ký hiệu sẽ có tham số theo sau là giá trị của bạn và giá trị mặc định trong ngoặc đơn.
key_buffer_size = 128M (8M)
max_allowed_packet = 5M (4M)
table_open_cache = 256 (2000)
sort_buffer_size = 10M (2M)
read_buffer_size = 20M (1M)
read_rnd_buffer_size = 10M (2M)
myisam_sort_buffer_size = 64M (8M)
thread_cache_size = 8 (-1)
query_cache_size= 30M (0/1M)
thread_concurrency = 8 (10)
bulk_insert_buffer_size = 256 (8M)
innodb_buffer_pool_size = 5G (128M)
innodb_additional_mem_pool_size = 1G (8M)
innodb_log_buffer_size = 1G (8M)
innodb_log_file_size = 1G (5M)
innodb_file_per_table = 1 (Off/On)
Như chúng ta có thể thấy bạn tăng hầu hết các bộ nhớ cache đáng kể. Nhưng điều đó có ý nghĩa? Bạn nói DB của bạn đang sử dụng công cụ InnoDB. Theo tài liệu trên key_buffer_size
, read_buffer_size
, bulk_insert_buffer_size
chỉ áp dụng cho cơ sở dữ liệu MyISAM. Tôi không chắc chắn bất cứ khi nào không gian tạm thời sẽ chạy trên đó.
Sử dụng myisam_sort_buffer_size
dường như ngược lại đặc biệt là vì các tài liệu nêu: The size of the buffer that is allocated when sorting MyISAM indexes during a REPAIR TABLE or when creating indexes with CREATE INDEX or ALTER TABLE.
Vì vậy, nó sẽ được sử dụng hiếm khi trong hầu hết các trường hợp sử dụng bình thường.
Ngoài ra, bạn đang sử dụng các cài đặt sau có vẻ phụ thuộc nhiều vào kiểu sử dụng DB của bạn max_allowed_packet
, table_open_cache
, thread_cache_size
, innodb_log_buffer_size
nhưng bạn đã không nói bất cứ điều gì về các mô hình sử dụng. Vì vậy, hãy xem xét xem xét các tài liệu trên để có cái nhìn về những gì họ thực sự làm và so sánh chúng với mô hình sử dụng của DB.
Coi chừng sort_buffer_size
và read_rnd_buffer_size
được bảo lưu mỗi phiên. Một số tham số MyISAM cũng có thể là do đó bạn thực sự nhận được khá nhiều chi phí cho mỗi phiên. Một lần nữa bạn cần đánh giá mô hình sử dụng thực tế.
Bây giờ cho các cài đặt InnoDB mà bạn đã chỉ định. innodb_additional_mem_pool_size
bị phản đối Không rõ tại sao bạn sửa đổi innodb_log_file_size
, innodb_file_per_table
không chắc lý do của bạn cho sự thay đổi đó có thể là gì. Cái sau có thể chỉ là mặc định của On
? Bằng cách thiết lập cài đặt còn lại của innodb_buffer_pool_size
đến một giá trị cao như vậy bạn có thể muốn xem xét sử dụng innodb_buffer_pool_instances
cũng.
Nhìn chung, có vẻ như bạn vừa thử một cái gì đó và nó không hoạt động. Theo nhận xét của bạn, bạn thậm chí không nhìn vào các tệp nhật ký MySQL để tìm ra điều gì chịu trách nhiệm cho dịch vụ không chấp nhận kết nối hoặc không xuất hiện. Nếu bạn thực sự muốn tối ưu hóa hiệu suất DB, bạn sẽ phải làm điều đó. Xem xét sử dụng các chỉ mục bổ sung trên các bảng trong đó có thể hợp lý để tăng hiệu suất truy vấn và xem xét các truy vấn nào thực sự được thực hiện trên DB. Ngoài ra, hãy cố gắng hiểu được kiểu sử dụng mà DB có về số lượng kết nối và kích thước của các truy vấn.
1G (Max 4GB) larger the file recovery slow.
trông giống như một cái gì đó được sao chép mà không thèm nghĩ về những gì nó nói.