Thread: Bogus temp file reporting?
Hello,
Is there a known issue with temp file reporting? I have a production db that is reporting 231TB of temp space usage, which can’t be true. temp_blks_written in pg_stat_statements sort of confirms this, as the reported queries show just a few MB of temp space usage. I suspect a reboot will clear this (to do) and wanted to check with you to see if someone else has had similar experiences.
Regards,
Kiriakos Georgiou
select version();
version
-----------------------------------------------------------------------------------------------------------------------------------
PostgreSQL 14.8 (Ubuntu 14.8-1.pgdg20.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0, 64-bit
(1 row)
select
datname,
temp_files as "# of temp files",
pg_size_pretty(temp_bytes) as "size of temp files"
from
pg_stat_database;
datname | # of temp files | size of temp files
---------------+-----------------+--------------------
| 0 | 0 bytes
postgres | 0 | 0 bytes
testdb | 269647 | 231 TB
template0 | 0 | 0 bytes
template1 | 0 | 0 bytes
At Thu, 27 Jul 2023 10:30:41 +0300, kg.postgresql@olympiakos.com wrote in > Hello, > > Is there a known issue with temp file reporting? I have a > production db that is reporting 231TB of temp space usage, which > can’t be true. temp_blks_written in pg_stat_statements sort of > confirms this, as the reported queries show just a few MB of temp > space usage. I suspect a reboot will clear this (to do) and wanted > to check with you to see if someone else has had similar > experiences. Just to clarify, "temprary files" and "temp blocks" refer to different entities in this context. The "temprary files" are ephemeral storage that is created and alive only for tasks like tuple sorting, whereas "temp blocks" are referring to the storage for temprary tables. If you're performing a massive insert into a temporary table, you'll find that pg_stat_database.temp_bytes doesn't increase at all. regards. -- Kyotaro Horiguchi NTT Open Source Software Center
Thanks for the clarification. Also, I was wrong about the temp_* columns in the pg_stat_database view in that they report the overall temp file usage since the last stats reset and not the “current” usage.
Regards,
Kiriakos Georgiou
On Jul 27, 2023, at 11:31 AM, Kyotaro Horiguchi <horikyota.ntt@gmail.com> wrote:At Thu, 27 Jul 2023 10:30:41 +0300, kg.postgresql@olympiakos.com wrote inHello,Is there a known issue with temp file reporting? I have a
production db that is reporting 231TB of temp space usage, which
can’t be true. temp_blks_written in pg_stat_statements sort of
confirms this, as the reported queries show just a few MB of temp
space usage. I suspect a reboot will clear this (to do) and wanted
to check with you to see if someone else has had similar
experiences.
Just to clarify, "temprary files" and "temp blocks" refer to different
entities in this context. The "temprary files" are ephemeral storage
that is created and alive only for tasks like tuple sorting, whereas
"temp blocks" are referring to the storage for temprary tables.
If you're performing a massive insert into a temporary table, you'll
find that pg_stat_database.temp_bytes doesn't increase at all.
regards.
--
Kyotaro Horiguchi
NTT Open Source Software Center
231TB seems, to me, an unreasonably large number.
On 7/27/23 02:30, kg.postgresql@olympiakos.com wrote:
Hello,Is there a known issue with temp file reporting? I have a production db that is reporting 231TB of temp space usage, which can’t be true. temp_blks_written in pg_stat_statements sort of confirms this, as the reported queries show just a few MB of temp space usage. I suspect a reboot will clear this (to do) and wanted to check with you to see if someone else has had similar experiences.Regards,Kiriakos Georgiouselect version();version-----------------------------------------------------------------------------------------------------------------------------------PostgreSQL 14.8 (Ubuntu 14.8-1.pgdg20.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0, 64-bit(1 row)selectdatname,temp_files as "# of temp files",pg_size_pretty(temp_bytes) as "size of temp files"frompg_stat_database;datname | # of temp files | size of temp files---------------+-----------------+--------------------| 0 | 0 bytespostgres | 0 | 0 bytestestdb | 269647 | 231 TBtemplate0 | 0 | 0 bytestemplate1 | 0 | 0 bytes
--
Born in Arizona, moved to Babylonia.
Born in Arizona, moved to Babylonia.