Tìm hiểu về giá trị wait_timeout và interactive_timeout trong MySQL

  • Thursday 01/09/2022

Wait_timeout và interactive_timeout trong mysql giúp giới hạn thời gian kết nối tới database nhằm tối ưu hơn trong việc sử dụng tài nguyên của mysql.

Ở một số trường hợp ứng dụng không thể tự đóng kết nối tới mysql. Lúc đó các kết nối này sẽ rơi vào trạng thái “Sleeping” . Các trạng thái kết nối này có thể gây ảnh hưởng 1 phần làm chậm xử lý database. Như vậy để tối ưu và xử các kết nối trong trạng thái này bạn có thể tham khảo với 2 biến là “wait_timeout” và “interactive_timeout” . 2 biến này sẽ qui định thời gian dừng các kết nối đến database của bạn.

Biến “wait_timeout” và “interactive_timeout”

Thông tin biến “wait_timeout”

  • Loại : integer
  • Giá trị mặc định : 28800 (8 giờ)
  • Giá trị nhỏ nhất có thể quy định : 1
  • Giá trị lớn nhất có thể quy định : 31536000
  • Phân loại nhóm : Global, Session

wait_timeout là giá trị đại diện cho khoảng thời gian mà dịch vụ MySQL sẽ chờ đợi trước khi ngắt các kết nối đang ở chế độ rảnh rỗi (idle connections) được dùng trong phiên kết nối chế độ “non-interactive” . Tức là kết nối không có tương tác trực tiếp từ người dùng. Khi mà một luồng xử lý kết nối từ người dùng được khởi tạo, thì giá trị “wait_timeout” của 1 phiên hoạt động sẽ được khởi tạo dựa trên giá trị Global wait_timeout”.

Thông tin biến “interactive_timeout”

  • Loại : integer
  • Giá trị mặc định : 28800 (8 giờ)
  • Giá trị nhỏ nhất có thể quy định : 1
  • Phân loại nhóm : Global, Session

Khi bạn sử dụng terminal shell, dùng chương trình lệnh mysql và thực thi lệnh query trên terminal gõ nhập từ bàn phím. Đó sẽ là phiên kết nối “interactive”. Nếu query thực hiện trên shell thì sau khoảng thời gian “interactive_timeout” thì MySQL sẽ tự động ngắt kết nối.

Bạn nên xem xét và phân loại sử dụng theo dạng nào để điều chỉnh giá trị tối ưu :

  • Website có mã nguồn sử dụng query để lấy/cập nhật dữ liệu ít không lâu.
  • Website có mã nguồn yêu cầu hoạt động core cần giữ kết nối tới CSDL lâu để hoàn thành nội dung của chức năng ứng dụng.

Set giá trị “wait_timeout” và “interactive_timeout”

Tìm đến file cấu hinh mysql , trong bài hướng dẫn file cấu hình nằm tại đường dẫn /etc/my.cnf

#nano /etc/my.cfg

Thêm 2 dòng sau với giá trị bạn tùy chỉnh dựa vào nhu cầu và mức sử dụng của hệ thống.

wait_timeout=180
interactive_timeout=180

Sau đó restart lại service mysql

Để kiểm tra các giá trị đã gán vào mysql

#show global variables like ‘%timeout%’;

Chúc bạn thành công!  Bạn có thể tham khảo thêm nhiều bài viết liên quan mysql tại đây

P.A Việt Nam cung cấp đa dạng các Plan Hosting đáp ứng yêu cầu của khách hàng
Hosting Phổ Thông
Hosting Chất Lượng Cao

Tham khảo các ưu đãi: https://www.pavietnam.vn/vn/tin-khuyen-mai/

 

5/5 - (1 bình chọn)