我正在使用pg_buffercache
模塊來查找耗盡我的RAM緩存的大量模塊。該sample_table
使用120個緩衝器PostgreSQL中的「緩衝區」有多大?
SELECT c.relname, count(*) AS buffers
FROM pg_buffercache b INNER JOIN pg_class c
ON b.relfilenode = c.relfilenode AND
b.reldatabase IN (0, (SELECT oid FROM pg_database WHERE datname = current_database()))
GROUP BY c.relname
ORDER BY 2 DESC
LIMIT 10;
我發現:例如,當我運行此查詢。
120個緩衝區的字節數是多少?
謝謝。是否shared_buffers = 2 GB意味着我有2 * 2^10^3/8192 = 262144個緩衝區? – 2010-05-22 08:31:00
是!這在運行pg_buffer_cache時當然會導致性能問題,因爲它太多了。但是如果2GB是PG羣集的最佳緩存大小,那麼這是一個小的代價。 – Edmund 2010-05-22 09:27:04