قاتل خاموشی که سرور را آرامآرام از کار میاندازد!!!
سرور پاسخ نمیدهد، اما CPU و RAM کاملاً طبیعیاند. برنامه را Restart میکنید و همهچیز درست میشود؛ چند ساعت یا چند روز بعد دوباره همان مشکل برمیگردد.
در چنین شرایطی ممکن است با Connection Leak روبهرو باشید.
در این مشکل، اتصالها باز میشوند اما بعد از پایان کار آزاد نمیشوند. تعداد آنها آرامآرام افزایش پیدا میکند تا در نهایت Connection Pool، سوکتها یا File Descriptorهای سرور تمام شوند.
نشانههای مهم Connection Leak:
۱. تعداد Connectionها با وجود ثابتبودن ترافیک افزایش پیدا میکند
۲. اتصالها بعد از کاهش بار به حالت عادی برنمیگردند
۳. تعداد
CLOSE_WAITها دائماً بیشتر میشود۴. درخواستهای منتظر Connection افزایش پیدا میکنند
۵. Restart مشکل را حل میکند، اما فقط برای مدتی کوتاه
در مقاله جدید Watchlog بررسی کردهایم که چطور با دستورهای
ss
و
lsof
نشتی اتصال را پیدا کنید، وضعیت Connection Pool را بسنجید و آن را در PostgreSQL، MySQL، Redis و Node.js تشخیص دهید.
همچنین توضیح دادهایم چرا افزایش
max_connections، بزرگترکردن Pool یا Restart دورهای راهحل واقعی این مشکل نیست.👇 مطالعه مقاله
https://watchlog.ir/blogs/connection-leak-guide
آیا تابهحال با مشکلی روبهرو شدهاید که سرور ظاهراً سالم باشد، اما فقط با Restart موقتاً درست شود؟ تجربهتان را در کامنتها بنویسید تا دیگران هم از آن استفاده کنند.
#مانیتورینگ #ConnectionLeak #NodeJS #Database #DevOps #SRE #Watchlog





