مدیریت connection pool
هر کانکشنی که از سمت کلاینتها به دیتابیس پستگرس زده میشود، یک پردازهی جدید در پستگرس ایجاد میکند و باعث میشود مقداری رم بیشتر مصرف شود. در پستگرس تعداد کانکشنها از عددی پیشتنظیمشده بیشتر نمیتواند شود و کلاینتهای جدید نمیتوانند متصل شوند.
برای حل کردن این مشکل بین کلاینتها و کلاستر دیتابیس ابزاری برای مدیریت کانکشنها قرار داده
میشود. این ابزار یک کانکشن پول میسازد و کانکشنهای مختلف کلاینتها را بین پولی از کانکشنها با
پستگرس پخش میکند. در همروش از
PgBouncer
برای این کار استفاده میشود.
در این مستند با نحوهی استفاده از کانکشن پول در کنسول دیتابیس مدیریتشده آشنا میشویم.
ساخت کانکشن پول
برای ایجاد کانکشن پول به تب «Connection Pool» در صفحهی مدیریت دیتابیس بروید.
دکمهی اضافه کردن را بزنید تا پنجرهی مشخصات پول باز شود:
ابتدا نام پول را بنویسید. در قسمت بعد باید نام کاربری و دیتابیسی که این پول استفاده میکند را بنویسید. سپس با توجه به نیازمندی خود نوع پول را تعیین کنید. توجه کنید که حالت پول بعد از ساخت قابل تغییر نیست. نوع پول نحوهی مدیریت کردن کانکشنها با دیتابیس را مشخص میکند. سه نوع پول موجود است. در حالت Transaction هر کلاینت در زمان اجرای transaction میتواند از پول استفاده کند. این حالت رایجترین حالت است وبه شکل پیشفرض انتخاب شده است. اگر کانکشنهای پول برای اجرای transaction جدید کافی نباشد، آن transaction در یک صف میماند تا یک کانکشن آزاد شود. این حالت برای زمانی مناسب است که کلاینت تعداد زیادی کانکشن باز و idle نگه میدارد. حالت دیگر Session است که اجازه میدهد کلاینتها درخواستهای خود را تا زمانی که کانکشن قطع شود، ارسال کنند. اگر کانکشنهای کافی برای اتصال کلاینتهای جدید وجود نداشته باشد، کلاینتهای جدید در یک صف قرار میگیرند تا یک کانکشن آزاد شود. اگر کلاینت شما از ویژگیهای استفاده میکند که در طول یک session کاربرد دارند و نه یک transaction از این حالت استفاده کنید. حالت آخر statement است. در این حالت یک statement فقط اجرا میشود و نوبت به statement بعدی در صف میرسد. این حالت زمانی مناسب است که autocommit برای هر کلاینت فعال شده باشد و هر transaction فقط یک statement باشد.
در نهایت باید اندازهی پول را انتخاب کنید. این عدد تعیین میکند حداقل تعداد کانکشنی که پول میتواند داشته باشد چقدر است. بعد از تکمیل تنظیمات، دکمهی «ساخت پول» را بزنید. بعد از ساخته شدن پول خود را در لیست پولها خواهید دید.
اتصال به پول
بعد از ساخت پول اطلاعات اتصال به آن در صفحهی کانکشن پول نمایش داده میشود:
برای مثال اگر میخواهید با
psql
به آن متصل شوید، ابتدا در تب «اطلاعات عمومی» دسترسی خارجی را فعال کنید و
دستور زیر را بزنید:
psql "host=185.126.202.227 port=30596 user=postgres password=your-password dbname=prod"
دقت کنید که نام دیتابیس نامی است که برای پول انتخاب کردید.