Giả sử hệ thống của bạn hiện đang dựa trên Unix (như được đưa ra trong báo cáo sự cố của bạn). Nếu điều này đúng, đây là tập hợp các vấn đề bạn có thể gặp phải:
-
Bạn đã hết bộ nhớ có sẵn cho MySQL.
Đây là vấn đề rất có thể bạn đang gặp phải. Mỗi kết nối trong nhóm kết nối của MySQL yêu cầu bộ nhớ để hoạt động và nếu tài nguyên này cạn kiệt, không thể thực hiện thêm kết nối nào. Tất nhiên, các dấu chân bộ nhớ và kích thước gói tối đa của các hoạt động khác nhau có thể được điều chỉnh trong tương đương của bạn với
my.cnf
nếu bạn phát hiện ra đây là một vấn đề.Đây là một chuỗi bổ sung có thể trợ giúp việc đó , nhưng bạn cũng có thể cân nhắc sử dụng các công cụ tạo cấu hình đơn giản hơn như
top
để có được một ước tính tốt về sân bóng về những gì đang diễn ra. -
Bạn đã sử dụng hết trình mô tả tệp có sẵn cho tài khoản người dùng MySQL của bạn.
Một vấn đề phổ biến khác:nếu bạn đang cố gắng xử lý các yêu cầu dịch vụ yêu cầu tệp IO trên ranh giới 1.024 (theo mặc định), bạn sẽ gặp phải trường hợp thao tác đơn giản không thành công. Điều này là do hầu hết các hệ thống chỉ định giới hạn mềm và cứng về số lượng bộ mô tả tệp đang mở mà mỗi người dùng có thể có sẵn tại một thời điểm và việc vượt qua ngưỡng này có thể gây ra sự cố.
Điều này thường sẽ có một loạt các dấu hiệu rõ ràng được thể hiện trong các tệp nhật ký của bạn. Kiểm tra
/var/log/messages
và các thư mục có thể so sánh của bạn (ví dụ:/var/log/mysql
để xem bạn có thể tìm thấy điều gì thú vị không. -
Bạn đã gặp phải một sống động hoặc bế tắc trong đó chủ đề của bạn không đạt yêu cầu.
Hệ quả là cạn kiệt bộ nhớ và bộ mô tả tệp, các luồng có thể hết thời gian chờ nếu bạn đã vượt quá tải tính toán mà hệ thống của bạn có thể xử lý. Nó sẽ không đưa ra thông báo lỗi này, nhưng đây là điều cần chú ý trong tương lai.
-
Hệ thống của bạn sắp hết PID có sẵn cho
fork
.Một tình huống phổ biến khác:
fork
chỉ có rất nhiều PID có sẵn để sử dụng tại bất kỳ thời điểm nào. Nếu hệ thống của bạn chỉ là làm việc quá mức , nó sẽ không thể đáp ứng các yêu cầu dịch vụ.Cách kiểm tra đơn giản nhất là xem có dịch vụ nào khác có thể kết nối với máy hay không. Ví dụ:cố gắng SSH vào hộp và phát hiện ra rằng bạn không thể là một manh mối lớn.
-
Trình quản lý kết nối hoặc proxy ngược dòng đã hết tài nguyên và ngừng cung cấp các yêu cầu.
Nếu bạn có bất kỳ lớp dịch vụ nào giữa máy khách và MySQL, nó sẽ kiểm tra xem liệu nó có bị treo, bị treo hoặc trở nên không ổn định hay không. Lời khuyên ở trên được áp dụng.
-
Trình ánh xạ cổng của bạn đã tự hết sau 65.536 kết nối .
Không có khả năng, nhưng một lần nữa, một trường hợp kiệt sức có thể xảy ra. Kiểm tra kết nối dịch vụ tầm thường như trên là, ehm, cũng là cổng kết nối tốt nhất ở đây.
Tóm lại: đây là một tình huống cạn kiệt tài nguyên, bao gồm cả việc máy chủ chỉ đơn giản là "ngừng hoạt động". Bạn sẽ phải cấu hình hệ thống của mình thêm để xem những gì bạn đang chặn. Tất cả thông báo lỗi cung cấp cho chúng tôi trong trường hợp này là thực tế tài nguyên không có sẵn cho máy khách - chúng tôi cần xem thêm thông tin về máy chủ để xác định một biện pháp khắc phục phù hợp hơn.