Điều duy nhất tôi có thể nghĩ đến là kiểm tra xem mysqld đang thực sự làm gì bằng cách sử dụng strace, với tư cách là người dùng gốc:
strace -p 2959
Thông thường, strace sẽ chặn ngay lập tức và hiển thị cho bạn lệnh gọi select (), vì mysqld phải chờ kết nối.
Cuộc gọi phải là một cái gì đó giống như:
select(SOCKETNO, [OTHER_FDs], NULL, NULL, NULL)
đặc biệt quan trọng là tham số thứ tư, là khoảng thời gian chờ. Nếu NULL, có nghĩa là mysqld sẽ ngủ cho đến khi ai đó kết nối. Nếu không NULL, có nghĩa là mysqld sẽ đợi trong thời gian quy định và sau đó thực hiện một số công việc bảo trì. Khoảng thời gian rất nhỏ có thể giải thích mức tiêu thụ CPU.
Tôi tin rằng MySQL luôn sử dụng thời gian chờ NULL (vô hạn). Nó có ý nghĩa và đây là cách các mysqld mà tôi có thể tiếp cận hiện đang hoạt động.
Tuy nhiên, có thể có một số sự cố xử lý kết nối ngăn chọn chế độ ngủ lại. Kiểm tra xem hành vi này có xuất hiện ngay sau khi mysqld khởi động hay sau khi ai đó kết nối.