[pgsql-general: 18] Re: Hỗ trợ bug Npgsql.PostgresException (0x80004005): 53300: sorry, too many clients already
Trần Đức Thông
humg.thongit at gmail.com
Sun Jun 10 05:34:25 EDT 2018
Cảm ơn các bạn đã trả lời mình.
Việc config lại tham số max_connection thì theo kinh nghiệm của admin thì
nên sửa thành bao nhiêu? Và ngoài config max_connection thì còn có tham số
nào nữa không. Mình đọc thì thấy cần tham số max_buffersize để tăng dung
lượng cache.
Việc custom cấu hình mặc gồm những tham số nào nhờ admin chỉ dõ thêm.
Thank admin.
On Jun 10, 2018 15:53, "pgvn_support" <support at postgresql.vn> wrote:
> Hi,
>
> On 09/06/2018 9:07 CH, Trần Đức Thông wrote:
>
> Xin bạn,
>
> Mình hiện tại đang sử dụng PostgreSQL vào trong công việc. Tuy nhiên hiện
> giờ mình gặp một bug mà chưa giải quyết được. Nhờ các bạn tư vấn giúp. Chi
> tiết như sau
>
> Phiên bản PostgreSQL 10
>
> Mình có thực hiện một test như sau.
> 1. Tạo một Table có 4 cột, và insert vào đó 1120 bản ghi.
>
> 2. Viêt một web api sử dụng thư viện #Npgsql
> <https://www.facebook.com/hashtag/npgsql?source=feed_text> tạo kết nối
> đến db vào execute một function. Function này thực hiện một nhiệm vụ đơn
> giản là trả ra hết các bản ghi của table trên.
>
> 3. Sử dụng jemeter load test vào function trên. Với tham số Number Of
> Theard = 200, Ramp-Up = 0, Loop Count = 5.
>
> 4. Kết quả xảy ra lỗi "sorry, too many clients already" -> check trong db
> thấy số connection đang mở là 105. Trong khi theo config của PostgreSql
> max-connection = 100.
>
> Số connections hiện tại trên PostgreSQL có thể xem từ view
> pg_stat_activity của PostgreSQL.
>
> max_connections không tính số lượng worker process (như background worker,
> autovacuum launcher, ...).
> Nên có trường hợp số lượng rows trong pg_stat_activity trả về giá trị lớn
> hơn max_connections.
>
> Ở phiên bản 10, có một số connections không được tính cho max_connections
> cũng hiện thị trong pg_stat_activity như:
> background writer, checkpointer, walwriter.
> Nên giá trị connection đang mở có thể có giá trị 105 như bạn xác nhận.
>
> Mình không có nhiều kinh nghiệm với sql nên nhờ mọi người tư vấn giúp. Với
> 2 câu hỏi như sau.
>
> 1. Tạo sao lại xảy ra hiện tượng mở nhiều connection (sao connection pool
> k được dùng đến) trong chuỗi Connection string đã có tham số Pooling = true
>
>
> Chức năng connection pooling bạn nói là ở phía npgsql, không phải bên
> PostgreSQL.
> Nên mình chỉ có thể trả lời khái quát như bên dưới.
> Để tìm hiểu cụ thể bạn tham khảo documents (hoặc source) phía npgsql.
>
> Thông thường vì PostgreSQL sử dụng mỗi process cho một kết nối,
> nên ở một số Driver có chức năng pool connection (hoặc tạo kết nối trước
> (prefork))
> để giảm overhead khi có kết nối mới.
>
> Bạn có thể chỉnh số lượng connections pool ở phía driver.
>
> Câu 2. Tại sao khi postgresql đã max connection -> các request sau không
> được được cho vào queue đợi khi thực khi xong các request hiện tại mới tiếp
> tự thưc thi các request mới. Mà theo hiên tại postgresql vẫn cố mở thêm
> conneciton mới dẫn đến xảy ra lỗi trên
>
>
> Lỗi "sorry, too many clients already" là phía PostgreSQL trả về, khi số
> lượng kết nối yêu cầu lớn hơn max_connections.
> but PostgreSQL không tự mở thêm kết nối. Mở kết nối là do phía npgsql.
> PostgreSQL cũng không có cơ chế queue để chứa các kết nối.
>
> Bạn nên xem lại hệ thống bạn có mở kết nối khác ngoài npgsql không (Ví dụ
> như cho mornitoring?) và
> điều chỉnh lại max_connections (postgresql.conf) hoặc Max pool size
> (npgsql) cho đúng.
>
>
>
>
>
>
>
> Nhờ các bạn tư vấn giúp.
>
> Mình xin cảm ơn.
> ------------------------------------------------------------
> -------------------------------------
> *Tran Duc Thong*
> Software engineering
> Mobile: 0989 452 004
> Email: humg.thongit at gmail.com
>
>
> Xin cảm ơn,
> —
> Together we work better
> Cộng đồng PostgreSQL Việt Nam
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.postgresql.vn/pipermail/pgsql-general/attachments/20180610/1ad8d7c2/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 34774679_1820173794713440_1674413414325157888_n.jpg
Type: image/jpeg
Size: 16623 bytes
Desc: not available
URL: <http://www.postgresql.vn/pipermail/pgsql-general/attachments/20180610/1ad8d7c2/attachment-0005.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 34776555_1820163938047759_3125179472001630208_n.jpg
Type: image/jpeg
Size: 25358 bytes
Desc: not available
URL: <http://www.postgresql.vn/pipermail/pgsql-general/attachments/20180610/1ad8d7c2/attachment-0006.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 34838297_1820164721381014_2112880329151741952_n.jpg
Type: image/jpeg
Size: 26905 bytes
Desc: not available
URL: <http://www.postgresql.vn/pipermail/pgsql-general/attachments/20180610/1ad8d7c2/attachment-0007.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 34815573_1820167161380770_7656883969492779008_n.jpg
Type: image/jpeg
Size: 37510 bytes
Desc: not available
URL: <http://www.postgresql.vn/pipermail/pgsql-general/attachments/20180610/1ad8d7c2/attachment-0008.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 35049242_1820165204714299_6562859883991924736_n.jpg
Type: image/jpeg
Size: 26642 bytes
Desc: not available
URL: <http://www.postgresql.vn/pipermail/pgsql-general/attachments/20180610/1ad8d7c2/attachment-0009.jpg>
More information about the pgsql-general
mailing list