PHP / mySQL: làm thế nào để gỡ lỗi 'quá nhiều kết nối'?


8

Tôi hiện đang làm việc với trang web PHP trên máy chủ chuyên dụng của khách hàng và tôi gặp lỗi định kỳ too many connectionsnhưng ~ 5 người dùng đang duyệt trang này.

Trong phpMyAdmintôi có thể thấy max connectionsbiến đó được đặt thành 400.

Trên máy chủ MySQL cục bộ của chúng tôi trong tập đoàn của tôi, chúng tôi đã max connectionsđặt 200và các bạn khác sử dụng cùng lúc với máy chủ này.

Tôi nghe nói rằng trên máy chủ của họ, một số web khác đang sử dụng cùng một MySQL với trafiic lớn.

Đây là câu hỏi của tôi:

  • Làm thế nào để gỡ lỗi vấn đề này?
  • Tôi có thể xem xét một số danh sách các truy vấn SQL đã được thực hiện trong 10 phút qua để kiểm tra xem đó có phải là vấn đề của chúng tôi không?

Câu trả lời:


2

Các triệu chứng bạn mô tả điểm đến các kết nối liên tục. Trong một số thiết lập, PHP không xử lý tốt các kết nối liên tục: nó có xu hướng mở các kết nối mới thay vì sử dụng lại các kết nối hiện có. Tôi khuyên bạn nên tắt tính năng này và xem sự cố vẫn còn:

Nếu bạn nhận thấy sự cải thiện, bạn có thể cố gắng tinh chỉnh các cuộc gọi liên tục hoặc loại bỏ chúng vĩnh viễn.


Tôi cũng bắn trường hợp đó. Tôi không thể sửa đổi cấu hình web / máy chủ của họ để thực hiện thay đổi đó (web của tôi không sử dụng ở persistent connectionsbất cứ đâu). Ngày mai tôi sẽ gặp người đàn ông của họ và tôi sẽ yêu cầu họ làm điều đó.
hsz

Điều này không yêu cầu sửa đổi bất kỳ cấu hình máy chủ. Bạn chỉ cần cập nhật các tập lệnh PHP cho ứng dụng.
Michael Mior

Chắc chắn, nhưng tôi không có quyền truy cập vào trang web thứ hai cũng đang sử dụng cùng một máy chủ MySql - vì vậy tôi không thể cập nhật tập lệnh PHP có thể sử dụng mysql_pconnect. phpinfo()cho tôi thấy rằng `mysql.allow_persistent` On. Thay đổi cờ đó thành Offsẽ không cho bất kỳ kết quả nào cả - nó nên được thay đổi trên máy của họ.
hsz

Họ đã thay đổi mysql.allow_persistentđến Offvà CMS của chúng tôi tăng tốc và bây giờ không có vấn đề với các kết nối. Cảm ơn! Nhưng tôi vẫn đang tự hỏi làm thế nào để kiểm tra tập lệnh nào đang kết nối với máy chủ MySql?
hsz

SHOC PROCESSLIST cho bạn biết người dùng, máy chủ lưu trữ, DB và truy vấn (nếu bạn may mắn).
Álvaro González
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.