MySQL auto kill quá trình ngủ

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"0
echo "MySQL Sleep Kill Process is running, Press Ctrl+C to STOP, Press CTRL+A+D to exit screen and leave the process running"1
echo "MySQL Sleep Kill Process is running, Press Ctrl+C to STOP, Press CTRL+A+D to exit screen and leave the process running"2
do
echo "MySQL Sleep Kill Process is running, Press Ctrl+C to STOP, Press CTRL+A+D to exit screen and leave the process running"4
echo "MySQL Sleep Kill Process is running, Press Ctrl+C to STOP, Press CTRL+A+D to exit screen and leave the process running"5
echo "MySQL Sleep Kill Process is running, Press Ctrl+C to STOP, Press CTRL+A+D to exit screen and leave the process running"6
echo "MySQL Sleep Kill Process is running, Press Ctrl+C to STOP, Press CTRL+A+D to exit screen and leave the process running"7
echo "MySQL Sleep Kill Process is running, Press Ctrl+C to STOP, Press CTRL+A+D to exit screen and leave the process running"8
echo "MySQL Sleep Kill Process is running, Press Ctrl+C to STOP, Press CTRL+A+D to exit screen and leave the process running"9
while :0
echo "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

MySQL auto kill quá trình ngủ

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

Làm cách nào để tránh truy vấn ngủ trong MySQL?

Để khắc phục vấn đề lệnh ngủ SQL này, MySQL sử dụng hai tham số. thời gian chờ tương tác và thời gian chờ_ chờ . Những giá trị này yêu cầu phải đặt các giá trị nhất định để giúp chạy truy vấn đến thời gian đã đặt đó. Theo mặc định, cả hai tham số đã đặt giá trị là 28800 giây (i. e. 8 giờ).

Kết nối ngủ trong MySQL là gì?

Truy vấn MySQL đang ngủ là một kết nối mở không hoạt động . Khi có quá nhiều truy vấn tồn tại cùng lúc, máy chủ MySQL sẽ hết kết nối khiến máy chủ không thể xử lý các truy vấn. Tuy nhiên, giết chết các truy vấn ngủ một cách mù quáng có thể có kết quả xấu, chẳng hạn như hỏng cơ sở dữ liệu hoặc mất dữ liệu.

Tôi có thể giết tiến trình MySQL không?

Cách hủy tiến trình MySQL. Để hủy một phiên MySQL khỏi danh sách, hãy sử dụng truy vấn KILL theo sau là Id chuỗi mà bạn đã lưu ý trước đó.

Làm thế nào để ngủ trong MySQL?

MySQL – Đợi vài giây bằng cách sử dụng SELECT SLEEP() . CHỜ TRÌ HOÃN '00. 00. 05' ; . NGỦ NGỦ(5);