Trong hầu hết các trường hợp, các kết nối MySQL đang ngủ không thực sự làm phiền bạn, tuy nhiên, trong một số trường hợp, số lượng rất lớn các kết nối đang ngủ có thể làm cạn kiệt tất cả các tài nguyên máy chủ có sẵn [RAM và CPU] và bạn cũng có thể đạt được các kết nối người dùng tối đa của mình
Bạn có thể sử dụng giải pháp này như một giải pháp tạm thời trong khi điều tra vấn đề cốt lõi về lý do tại sao các kết nối MySQL của bạn không bị đóng và vá trang web của bạn
Đây là một tập lệnh ngắn thú vị mà bạn có thể sử dụng để loại bỏ những truy vấn MySQL ngủ lâu đang làm cạn kiệt tài nguyên trên máy chủ của bạn
Đây là một tập lệnh Bash để tự động tắt các kết nối MySQL đang ngủ và gần như ngay lập tức để giảm mức sử dụng CPU của MySQL và làm cho MySQL nhanh hơn. Hướng dẫn này chỉ hoạt động nếu bạn có máy chủ có quyền truy cập root và bạn đã đăng nhập với quyền root
Tập lệnh này sử dụng khoảng 0. 25% trên VPS thông thường có 1vCPU của CPU với 500 mili giây thời gian ngủ giữa các vòng lặp, thời gian ngủ giữa các vòng lặp có thể tăng lên để giảm mức sử dụng CPU
#!/bin/bash
echo "MySQL Sleep Kill Process is running, Press Ctrl+C to STOP, Press CTRL+A+D to exit screen and leave the process running"
while :
do
mysql -u $MYSQLUSER -p$USERPASS -e "
select
-- *
id
________số 8_______where command = 'Sleep'
echo "MySQL Sleep Kill Process is running, Press Ctrl+C to STOP, Press CTRL+A+D to exit screen and leave the process running"
0echo "MySQL Sleep Kill Process is running, Press Ctrl+C to STOP, Press CTRL+A+D to exit screen and leave the process running"
1echo "MySQL Sleep Kill Process is running, Press Ctrl+C to STOP, Press CTRL+A+D to exit screen and leave the process running"
2do
echo "MySQL Sleep Kill Process is running, Press Ctrl+C to STOP, Press CTRL+A+D to exit screen and leave the process running"
4echo "MySQL Sleep Kill Process is running, Press Ctrl+C to STOP, Press CTRL+A+D to exit screen and leave the process running"
5echo "MySQL Sleep Kill Process is running, Press Ctrl+C to STOP, Press CTRL+A+D to exit screen and leave the process running"
6echo "MySQL Sleep Kill Process is running, Press Ctrl+C to STOP, Press CTRL+A+D to exit screen and leave the process running"
7echo "MySQL Sleep Kill Process is running, Press Ctrl+C to STOP, Press CTRL+A+D to exit screen and leave the process running"
8echo "MySQL Sleep Kill Process is running, Press Ctrl+C to STOP, Press CTRL+A+D to exit screen and leave the process running"
9while :
0echo "MySQL Sleep Kill Process is running, Press Ctrl+C to STOP, Press CTRL+A+D to exit screen and leave the process running"
9
Làm thế nào để sử dụng?
Cài đặt nano và màn hình
#Đối với hệ thống dựa trên CentOS
yum cài đặt màn hình nano
#Đối với các hệ thống dựa trên Ubuntu
apt-get cài đặt màn hình nano
Tạo một tệp có tên mysql_kill_sleep. sh và dán nội dung của tệp bash ở trên
nano mysql_kill_sleep. sh
Dán Nội dung và thay thế $MYSQLUSER bằng tên người dùng và $USERPASS bằng mật khẩu của người dùng MySQL
Nếu bạn không có mật khẩu MySQL Xóa phần while :
2 khỏi tệp từ cả hai dòng
Bạn cũng có thể sử dụng mật khẩu gốc của MySQL, Xin lưu ý rằng mật khẩu gốc của Máy chủ và mật khẩu gốc của MySQL không giống nhau
Bây giờ chạy,
chmod +x mysql_kill_sleep. sh
Bạn cũng có thể sử dụng chmod 777 nếu chỉ +x gây ra sự cố
Bây giờ, thiết lập một màn hình
màn hình -S mysqlkillsleep
Một màn hình mới sẽ mở ra, Nhập ls và xác nhận xem bạn có ở cùng thư mục với tệp bash được tạo ở trên không
Bây giờ chạy,
/mysql_kill_sleep. sh
Đây phải là đầu ra trên màn hình của bạn và không có gì khác
Bây giờ Nhấn while :
3 để tách khỏi màn hình. Giờ đây, các quy trình ngủ MySQL của bạn sẽ bị hủy trong vòng 1 giây [tối đa] sau khi chúng được tạo, Bạn có thể thay đổi chế độ ngủ từ 0. 5 đi ngủ 0. 3 hoặc thứ gì đó tùy theo cách sử dụng của bạn trong tệp bash
Nếu bạn cần gắn lại vào màn hình và dừng quá trình –
màn hình -r mysqlkills ngủ
Nhấn Ctrl + C
lối ra
Bạn có thể khởi động lại bằng cách bắt đầu lại từ bước “Thiết lập màn hình”
Sử dụng tập lệnh này nếu bạn không sử dụng các kết nối liên tục với MySQL, nếu không sử dụng tập lệnh này có thể khiến Trang web chậm hơn. Tôi sẽ để bạn là người đánh giá điều đó. May mắn nhất