Tôi đang tiêm thử nghiệm căng thẳng vào ứng dụng web của mình kết nối với máy chủ mysql và tôi đang theo dõi danh sách xử lý chương trình của mysql.Mysql hiển thị danh sách processlist nhiều quá trình ngủ và info = null?
Khi tải trọng cao (swap cao i/o) tôi nhận được nhiều quá trình như thế:
| 97535 | db| localhost | userA | Sleep | 515 | | NULL
| 97536 | db| localhost | userA | Sleep | 516 | | NULL
| 97786 | db| localhost | userA | Sleep | 343 | | NULL
| 97889 | db| localhost | userA | Sleep | 310 | | NULL
Nhưng tôi không thể hiểu tại sao họ vẫn ở đó và không bị giết? Điều này cuối cùng dẫn đến ứng dụng của tôi sử dụng tất cả các max_connections và ngừng xử lý các yêu cầu đến ...
Bất kỳ ý tưởng nào là những quy trình này và chúng đang làm gì ở đó :)?
có bất kỳ biến thời gian chờ mysql nào mà tôi có thể điều chỉnh để tránh điều này không? – AlfaTeK
Bạn có thể đặt wait_timeout thành thứ gì đó nhỏ hơn (http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html#sysvar_wait_timeout) hoặc tăng giới hạn kết nối. Bạn thực sự muốn giải quyết điều này ở phía ứng dụng, tuy nhiên. Treo kết nối từ các rủi ro bên cơ sở dữ liệu đóng một kết nối giống như ứng dụng cố gắng sử dụng nó, có khả năng gây ra lỗi ứng dụng không có lý do chính đáng. Bạn đang sử dụng thư viện kết nối cơ sở dữ liệu nào? –
@KeithRandall nhưng làm thế nào để xác định các quy trình Null? – Khuram