我想在我的应用运行期间查看有关postgresql性能的信息。
我的应用程序在循环中对20个表执行下一步操作:
insert into local_table select * from remote_oracle_table
SQLERRM =无法扩展文件“base / 16400/124810.23”:在块中只写入4096个8192个字节 3092001
此操作每晚运行。大多数桌子都是小型的500M-2G,但很少有桌子很大24G-45G。
我的wals和我的数据目录位于不同的fs上。我的数据目录fs大小是400G。在此操作期间,数据目录fs变满。但是,在此操作之后,释放100G,这意味着从400g的数据目录fs中使用300G。关于这些尺寸的东西似乎没有问题。
检查数据库大小时:
mydb=# SELECT
mydb-# pg_database.datname,
mydb-# pg_size_pretty(pg_database_size(pg_database.datname)) AS size
mydb-# FROM pg_database;
datname | size
-----------+---------
template0 | 7265 kB
mydb | 246 GB
postgres | 568 MB
template1 | 7865 kB
(4 rows)
当我检查mydb数据库中的所有表时:
mydb-# relname as "Table",
mydb-# pg_size_pretty(pg_total_relation_size(relid)) As "Size",
mydb-# pg_size_pretty(pg_total_relation_size(relid) -
pg_relation_size(relid)) as "External Size"
mydb-# FROM pg_catalog.pg_statio_user_tables ORDER BY
pg_total_relation_size(relid) DESC;
Table | Size | External Size
-------------------+------------+---------------
table 1| 45 GB | 13 GB
table 2| 15 GB | 6330 MB
table 3| 9506 MB | 3800 MB
table 4| 7473 MB | 1838 MB
table 5| 7267 MB | 2652 MB
table 6| 5347 MB | 1701 MB
table 7| 3402 MB | 1377 MB
table 8| 3092 MB | 1318 MB
table 9| 2145 MB | 724 MB
table 10| 1804 MB | 381 MB
table 11 293 MB | 83 MB
table 12| 268 MB | 103 MB
table 13| 225 MB | 108 MB
table 14| 217 MB | 40 MB
table 15| 172 MB | 47 MB
table 16| 134 MB | 36 MB
table 17| 102 MB | 27 MB
table 18| 86 MB | 22 MB
.....
在数据目录中,基本目录的大小为240G。我的机器里有16G的ram。
等待帮助,谢谢。