web-dev-qa-db-ja.com

PGPoolメモリ要件

接続プールとロードバランシングを実行しているがクエリキャッシュを実行していない専用PGPoolマシンには、どのくらいの物理メモリが推奨されますか?

_SHOW pool_pools_にnum_init_children(96) * max_pool(2) * number_of_backends(2) = 384行があります。モーダル平均はPIDあたり約99Mで、2Gの外れ値がいくつかあるようです。

_# top for 20 pgpool processes
$ top -p $(pgrep pgpool | head -20 | tr "\\n" "," | sed 's/,$//')

Tasks:  20 total,   0 running,  20 sleeping,   0 stopped,   0 zombie
%Cpu(s):  3.1 us,  4.0 sy,  0.0 ni, 92.2 id,  0.0 wa,  0.0 hi,  0.7 si,  0.0 st
KiB Mem :  1784080 total,    22068 free,  1629960 used,   132052 buff/cache
KiB Swap:  4194300 total,   437328 free,  3756972 used.    71276 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND     
15407 root      20   0   97828    872    708 S   0.3  0.0   5:52.95 pgpool      
 8076 root      20   0  101664   2800   1708 S   0.0  0.2   0:06.51 pgpool      
 9597 root      20   0  101656   4508   1264 S   0.0  0.3   0:18.85 pgpool      
13603 root      20   0  149936  35548    984 S   0.0  2.0   1:13.56 pgpool      
13634 root      20   0  151848  39364    984 S   0.0  2.2   1:00.25 pgpool      
13677 root      20   0  149424  37812   1180 S   0.0  2.1   0:28.03 pgpool      
13680 root      20   0  153416  34948   1180 S   0.0  2.0   0:32.97 pgpool      
15397 root      20   0   97820    828    668 S   0.0  0.0   0:33.05 pgpool      
15399 root      20   0   97884    240    132 S   0.0  0.0   1:41.48 pgpool      
15402 root      20   0   93636     72      0 S   0.0  0.0   0:07.12 pgpool      
15405 root      20   0   93636    280    172 S   0.0  0.0   0:42.39 pgpool      
17121 root      20   0  101676   2016   1648 S   0.0  0.1   0:03.39 pgpool      
17206 root      20   0   97824     72      0 S   0.0  0.0   0:00.00 pgpool      
17207 root      20   0   97820    164     56 S   0.0  0.0   0:00.27 pgpool      
21348 root      20   0 3871428 1.090g   1536 S   0.0 64.1 429:48.53 pgpool      
21917 root      20   0  102672   2832   1696 S   0.0  0.2   0:49.46 pgpool      
22117 root      20   0  101692   2868   1752 S   0.0  0.2   0:16.57 pgpool      
22436 root      20   0  101692   4644   3464 S   0.0  0.3   0:31.12 pgpool      
23037 root      20   0  101692   3776   1780 S   0.0  0.2   0:20.52 pgpool      
23142 root      20   0  101664    980    936 S   0.0  0.1   0:08.60 pgpool      
_
3
gregn

これは公式ドキュメントには記載されていませんが(現在-2018年2月現在)、PgPoolのメモリフットプリントはかなり重いです。

最近のテストでは、PgPool IIバージョン3.6には140 MBも必要ですRAM子プロセスごとに。子プロセスの数はnum_init_children)。これはプライベートプロセスメモリ-共有されません。

これは、50クライアントごとに約8GBを意味します。

PostgreSQLと比較すると、これは5〜10倍になります(PostgreSQLは8 GB RAMで250セッションを簡単に処理できます)。さらに、PostgreSQLは、はるかに費用対効果の高い共有バッファキャッシュを使用しています。

2
filiprem