Hướng dẫn check max connection mysql - kiểm tra kết nối tối đa mysql
Show Đã đăng vào thg 5 1, 2021 2:21 SA 4 phút đọc 4 phút đọc 1. Lỗi Too many connectionsTrong quá trình làm việc với hệ quản trị cơ sơ sở dữ liệu(Mysql, Postgres, Oracle...) rất nhiều khi gặp lỗi "Too many connections". Tại thời điểm đó, database không thể tiếp tục nhận các kết nối đến.Too many connections". Tại thời điểm đó, database không thể tiếp tục nhận các kết nối đến.
-> Giải pháp đơn giản nhất là reset lại database, để đóng các connections hiện tại.
Nếu là 1 kỹ sư có tâm với sản phẩm của mình, chúng ta sẽ cố gắng đi sâu vào gốc dễ vấn đề để xử lý: Trong bài hướng dẫn này, mình hướng dẫn 1 số cách check trên Mariadb các database khác làm tương tự. 2. Phân tích nguyên nhân
Như trong hình ta có thể thấy, hiện tại database của mình đang là max_connections=100 Như vậy nó chỉ cho tối đa 100 connections. Mình sẽ tăng nó lên 1000.max_connections=100 Như vậy nó chỉ cho tối đa 100 connections. Mình sẽ tăng nó lên 1000.
Đến đây các bạn sẽ tiếp tục hỏi, tại sao không tăng đến 1 triệu đi. Thực ra cái gì cũng có giá của nó. Mình sẽ tiếp tục phân tích. Phụ thuộc vào RAM available của hệ thống là bao nhiêu, lượng ram sử dụng cho mỗi connection là bao nhiêu. Lưu ý rằng không có giới hạn cứng của max_connections. Chúng ta phải lựa chọn 1 cách thông mình dự vào workload của hệ thống. Ví dụ: Với những kết nối sử dụng các bảng tạm, bộ nhớ sử dụng cho 1 connection sẽ nhiều. Với các server có it bộ nhớ hay giới hạn số lượng connection ở phía ứng dụng: max_connections=100-300. Với các server từ 16G RAM trở lên, max_connections>=1000, nếu ứng dụng xử lý tốt, tác vụ đơn giản (không dùng nhiều bảng tạm, bộ nhớ tạm) có thể max_connections=8000.max_connections. Chúng ta phải lựa chọn 1 cách thông mình dự vào workload của hệ thống. Ví dụ: Với những kết nối sử dụng các bảng tạm, bộ nhớ sử dụng cho 1 connection sẽ nhiều. Với các server có it bộ nhớ hay giới hạn số lượng connection ở phía ứng dụng: max_connections=100-300. Với các server từ 16G RAM trở lên, max_connections>=1000, nếu ứng dụng xử lý tốt, tác vụ đơn giản (không dùng nhiều bảng tạm, bộ nhớ tạm) có thể max_connections=8000.
Chạy lệnh này để kiểm tra cơ sở dữ liệu đang có các connection đến từ đâu (Host), từ user nào (User), database nào (db). Xem chi tiết tại đây Kết quả như bên dưới.Host), từ user nào (User), database nào (db). Xem chi tiết tại đây Kết quả như bên dưới.
Từ hình trên ta có thể thấy:
3. Kết luậnTừ đó chúng ta có thể kiểm tra được ứng dụng nào đang tạo nhiều connections. Chúng ta sẽ đi vào ứng dụng, kiểm tra các thông số của nó để tìm hướng giải quyết. Bài viết tiếp theo, mình sẽ đưa ra 1 ví dụ cụ thể cách mình xử lý trong bài toán thực tế.
Nếu cần trao đổi, mọi người hãy comment bên dưới. All rights reserved Làm thế nào để thay đổi max_connectionsBạn có thể thay đổi
Để mởtimeout liên quanTôi chưa bao giờ thấy thông báo lỗi của bạn trước đây, vì vậy tôi đã truy cập vào Google. có thể là bạn đang sử dụng Connector / Net. Connector / Net Manual cho biết có kích thước nhóm kết nối tối đa. (mặc định là 100) xem bảng 22.21.Connector / Net Manual cho biết có kích thước nhóm kết nối tối đa. (mặc định là 100) xem bảng 22.21. Tôi khuyên bạn nên tăng giá trị này lên 100k hoặc tắt tính năng tổng hợp kết nối anh ấy có hai câu hỏi. Q1 - điều gì sẽ xảy ra nếu tôi tắt tính năng tổng hợp Làm chậm kết nối DB. Câu hỏi 2 - Giá trị của tổng hợp có thể tăng lên hay tối đa là 100? bạn có thể tăng nhưng tôi chắc chắn giá trị MAX là gì, có thể Đề xuất của tôi là đừng tắt Pooling, hãy tăng giá trị lên 100 cho đến khi không có lỗi kết nối. Nếu bạn có công cụ Kiểm tra mức độ căng thẳng như 1bạn có thể tự kiểm tra.64 hữu ích 2 bình luận chia sẻ 2 bình luận chia sẻ |