Gần đây tôi đã gặp vấn đề với việc đập vì kết quả là hết bộ nhớ. (VPS của tôi có tổng cộng 256M)
Tôi đang cố gắng điều chỉnh MySQL bằng mysqltuner.pl và nhận được các kết quả sau:
-------- Thống kê chung ---------------------------------------- ---------- [-] Bỏ qua kiểm tra phiên bản cho tập lệnh MySQLTuner [OK] Hiện đang chạy phiên bản MySQL được hỗ trợ 5.0.51a-3ubfox5.4-log [OK] Hoạt động trên kiến trúc 64 bit -------- Thống kê công cụ lưu trữ --------------------------------------- ---- [-] Trạng thái: + Lưu trữ -BDB -Federated -InnoDB -ISAM -NDBCluster [-] Dữ liệu trong các bảng MyISAM: 114M (Bảng: 454) [!!] Tổng số bảng phân mảnh: 34 -------- Số liệu hiệu suất ---------------------------------------- --------- [-] Lên đến: 40 giây (570 q [14.250 qps], 23 liên kết, TX: 154K, RX: 23K) [-] Đọc / Viết: 100% / 0% [-] Tổng số bộ đệm: 338.0M toàn cầu + 2.7M mỗi luồng (20 luồng tối đa) [!!] Sử dụng bộ nhớ tối đa có thể: 392,9M (153% RAM đã cài đặt) [OK] Truy vấn chậm: 0% (5/570) [OK] Sử dụng cao nhất các kết nối khả dụng: 15% (3/20) [!!] Kích thước bộ đệm chính / tổng chỉ số MyISAM: 8,0M / 9,4M [!!] Tốc độ nhấn bộ đệm chính: 57,1% (7 bộ nhớ cache / 3 lần đọc) [OK] Hiệu quả bộ đệm truy vấn: 21,9% (7 bộ nhớ cache / 32 lựa chọn) [OK] Truy vấn mận bộ nhớ cache mỗi ngày: 0 [OK] Sắp xếp yêu cầu các bảng tạm thời: 0% (0 sắp xếp tạm thời / 1 sắp xếp) [OK] Các bảng tạm thời được tạo trên đĩa: 0% (0 trên đĩa / tổng 32) [OK] Tốc độ nhấn bộ đệm của luồng: 86% (3 kết nối được tạo / 23) [OK] Tỷ lệ nhấn bộ đệm bảng: 26% (128 mở / 484 đã mở) [OK] Mở giới hạn tệp được sử dụng: 25% (259 / 1K) [OK] Khóa bảng thu được ngay lập tức: 100% (492 ngay lập tức / 492 khóa) -------- Khuyến nghị ----------------------------------------- ------------ Khuyến nghị chung: Chạy BẢNG TỐI ƯU để bảng chống phân mảnh để có hiệu suất tốt hơn MySQL bắt đầu trong vòng 24 giờ qua - các khuyến nghị có thể không chính xác Giảm dung lượng bộ nhớ MySQL tổng thể của bạn để ổn định hệ thống Các biến để điều chỉnh: *** Sử dụng bộ nhớ tối đa của MySQL rất cao *** *** Thêm RAM trước khi tăng biến bộ đệm MySQL *** key_buffer_size (> 9,4M)
Nhưng tôi hơi bối rối về cách giảm mức sử dụng bộ nhớ tối đa? Nó dường như được dựa trên key_buffer và max_connections, nhưng cũng phải có cái gì khác liên quan?
my.cnf:
key_buffer = 8M max_allowed_packet = 12M thread_stack = 128K thread_cache_size = 8 max_connections = 20 bảng_cache = 128 tmp_table_size = 256M max_heap_table_size = 256M tham gia_buffer_size = 256K truy vấn_cache_limit = 8M truy vấn_cache_size = 64M
Tôi đã cố gắng đọc qua các bài viết điều chỉnh MySQL, nhưng chúng dường như hướng đến những người đã biết họ đang làm gì! Bất kỳ trợ giúp sẽ được đánh giá cao. Cảm ơn!