it-swarm-vi.tech

Làm cách nào để tăng mức sử dụng bộ nhớ trong Máy chủ MySQL để cải thiện tốc độ?

Tôi có máy chủ Windows 2008 với 8GB RAM chạy IIS7 và MySQL. Tôi đã theo dõi việc sử dụng bộ nhớ, cpu và ổ đĩa trên máy chủ và tôi phát hiện ra rằng MySQL chỉ sử dụng 250MB RAM, giữ cho các đĩa rất bận rộn, mặc dù tôi có rất nhiều ram miễn phí được đặt xung quanh.

Trong SQL Server tôi có thể dễ dàng đặt lượng bộ nhớ tôi muốn sử dụng, tôi đang tìm kiếm cài đặt tương tự trong MySQL.

Làm cách nào tôi có thể định cấu hình MySQL để sử dụng nhiều bộ nhớ hơn và giảm mức sử dụng CPU và đĩa?

30
holiveira

table_cache Là chỉ thị cấu hình hữu ích nhất để thay đổi. Mỗi lần MySQL truy cập vào một bảng, nó sẽ tải bảng vào bộ đệm. Nếu bạn có số lượng bảng cao, sẽ nhanh hơn khi lưu chúng vào bộ nhớ cache.

Hãy xem các biến máy chủ của bạn bằng cách chạy:

show status;

và có một cái nhìn cho biến open_tables. Nếu giá trị này giống với giá trị table_cache Của bạn và opened_tables Tiếp tục tăng, thì bạn cần tăng giá trị table_cache Trong tệp cấu hình của mình. Bạn sẽ tìm thấy sự cân bằng bằng cách thử nghiệm với các biến này trong thời gian cao điểm. Bạn muốn định cấu hình nó để vào thời gian cao điểm, có một lượng opened_tables Thấp ngay cả sau khi máy chủ đã hoạt động trong một thời gian dài.

key_buffer_size Cũng là một biến tốt để thử nghiệm. Biến này ảnh hưởng đến kích thước bộ đệm chỉ mục và làm cho biến này lớn hơn làm tăng tốc độ xử lý chỉ mục của MySQL. Bạn có thể xem lại các biến bằng lệnh show variables; Và so sánh key_read_requests Với key_reads. Lý tưởng nhất là bạn muốn tỷ lệ giữa hai biến này càng thấp càng tốt và bạn có thể làm điều này bằng cách tăng kích thước của key_buffer_size. Nếu bạn đặt biến này cao hơn, bạn sẽ có ít ghi và đọc trực tiếp đến và từ đĩa, đó là mối quan tâm chính của bạn.

20
James

Bạn cần thay đổi giá trị trong my.cnf tập tin và khởi động lại MySQL, mặc dù bạn cũng có thể thay đổi nhiều trong số chúng trong khi MySQL cũng đang chạy ('SET GLOBAL VARIABLE = value ').

Bạn có thể sẽ muốn nhìn vào tăng key_buffer_size, sort_buffer, read_buffertable_cache cho người mới bắt đầu và có lẽ innodb_buffer_pool_size, nếu bạn có bất kỳ bảng InnoDB nào. Một số giá trị này bạn có thể tăng một chặng đường dài (thậm chí hai bậc độ lớn) đặc biệt là với phần cứng của bạn. Mặc định của MySQL là cực kỳ bảo thủ và dường như nhằm vào các máy tính để bàn sử dụng hỗn hợp phổ biến của khoảng mười năm trước. Ồ, và được cảnh báo rằng phiên bản 32 bit sẽ gặp sự cố khi sử dụng hơn 2GB RAM.

Xem trong Hướng dẫn sử dụng MySQL để biết thêm thông tin và hướng dẫn.

6
staticsan