From: | Greg Williamson <gwilliamson39(at)yahoo(dot)com> |
---|---|
To: | Steve Crawford <scrawford(at)pinpointresearch(dot)com> |
Cc: | "pgsql-admin(at)postgresql(dot)org" <pgsql-admin(at)postgresql(dot)org> |
Subject: | Re: Database size stays constant but disk space keeps shrinking -- postgres 9.1 |
Date: | 2012-09-28 22:47:52 |
Message-ID: | 1348872472.9854.YahooMailNeo@web125904.mail.ne1.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-admin |
Steve --
----- Original Message -----
> From: Steve Crawford <scrawford(at)pinpointresearch(dot)com>
> To: Greg Williamson <gwilliamson39(at)yahoo(dot)com>
> Cc: "pgsql-admin(at)postgresql(dot)org" <pgsql-admin(at)postgresql(dot)org>
> Sent: Friday, September 28, 2012 8:59 AM
> Subject: Re: [ADMIN] Database size stays constant but disk space keeps shrinking -- postgres 9.1
>
> On 09/27/2012 07:01 PM, Greg Williamson wrote:
>> Steve (and others who replied):
>> ...
>> The other is a slimmed-down version of our production database, which
> gets
>>> recreated hourly by a shell script which pulls data from remote
> servers, does a
>>> pg_dump of the resulting 3 gig database, and then drops it.
>>> ...
>
> Could you explain this process in more detail? Are you creating a new database,
> reading in data, dumping then dropping the whole database or just manipulating
> tables within an existing database?
>
We create the database, and then use shell scripts to get a pg_dump -s of a production server and use that to create tables, indexes, etc.
Then a sequence of psql commands retrieves data from production, usually a subset of whatever table is being grabbed based on a slimmed down set of userids of interest, recency, etc. Mostly these get loaded as is i nto the tables in the new database; occasionally we build a temp table and do some simple joins to get the final results.
When all these commands are done, we pg_dump the new database, compress it and make a tar file, and finally issue a DROP DATABASE command.
Takes about 20 minutes and runs once an hour.
>>> Have you checked to see if there are any processes that have open
> handles to
>>> deleted files (lsof -X | grep deleted). Deleted files won't show up
> in du
>>> but won't release their disk space until the process exits. Perhaps
> a script
>>> or scripts, even one of your hourly ones, that terminate when the
> server
>>> restarts? You could save the output of lsof and ps immediately before
> and after
>>> a restart and compare them.
>>>
>> lsof -X | grep deleted | wc -l
>>
>> shows: 835 such files.
>>
>> A couple:
>> postgres 2540 postgres 50u REG 8,3 409600
> 93429 /var/lib/postgresql/9.1/main/base/2789
>> 200/11816 (deleted)
>> postgres 2540 postgres 51u REG 8,3 18112512
> 49694570 /var/lib/postgresql/9.1/main/base/2789
>> 200/2791679 (deleted)
>> <...>...
> I'll leave it to you and Tom to puzzle over the the postgres-related open
> files. Meanwhile, I'm a bit curious about the other 800+ and whether they
> are associated with scripts or processes that are connected to PostgreSQL.
>
These all seem to be from two places -- repmgr (transient ) and this stats application.
> First, what is the output of "select * from pg_stat_activity;"? Are
> there connections you don't expect to see? If you force any of them closed
> (after checking with anyone who may be impacted), do you see any file handles
> released or disk-space freed?
>
Nothing unexpected, lots of IDLE connections (20-30, depending). We just tried a round of closing half of the stat application connections and it didn't seem to make a big difference.
> Second, do any of the processes associated with the other open-but-deleted files
> relate to programs or scripts that connect to PostgreSQL? Next time you do a
> restart, do any of the processes exit or do any of the deleted files get closed?
>
repmgr is now also a suspect, although from what I can see it keeps things in that state for nly a short while. But we are investigating further.
Everythng else connects via pgbouncer, so we are also wondering if the tcp_keepalive we added might be hurting us.
> I'm wondering if you have processes that connect to PostgreSQL which
> terminate and release their file-handles when PG is restarted.
>
> Cheers,
> Steve
>
Thanks for questions and the time -- still digging into this.
Greg
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2012-09-28 23:49:09 | Re: Database size stays constant but disk space keeps shrinking -- postgres 9.1 |
Previous Message | Dinesh Bhandary | 2012-09-28 17:09:39 | Re: Database size stays constant but disk space keeps shrinking -- postgres 9.1 |