Re: Reducing buildfarm disk usage: remove temp installs when done

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Reducing buildfarm disk usage: remove temp installs when done
Дата
Msg-id 23766.1421634039@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: Reducing buildfarm disk usage: remove temp installs when done  (Andrew Dunstan <andrew@dunslane.net>)
Ответы Re: Reducing buildfarm disk usage: remove temp installs when done  (Andrew Dunstan <andrew@dunslane.net>)
Список pgsql-hackers
Andrew Dunstan <andrew@dunslane.net> writes:
> On 01/18/2015 05:48 PM, Tom Lane wrote:
>> One of the biggest causes of buildfarm run failures is "out of disk
>> space".  That's not just because people are running buildfarm critters
>> on small slow machines; it's because "make check-world" is an enormous
>> space hog.  Some numbers from current HEAD:

> I don't have an issue, but you should be aware that the buildfarm 
> doesn't in fact run "make check-world", and it doesn't to a test install 
> for each contrib module, since it runs "installcheck", not "check" for 
> those. It also cleans up some data directories as it goes.

Darn.  I knew that it didn't use check-world per se, but I'd supposed
it was doing something morally equivalent.  But I checked just now and
didn't see the space consumption of the pgsql.build + inst trees going
much above about 750MB, so it's clearly not as bad as "make check-world".

I think the patch I proposed is still worthwhile though, because it
looks like the buildfarm is doing this on a case-by-case basis and
missing some cases: I see the tmp_check directories for pg_upgrade and
test_decoding sticking around till the end of the run.  That could
be fixed in the script of course, but why not have pg_regress do it?

Also, investigating space consumption on my actual buildfarm critters,
it seems like there might be some low hanging fruit in terms of git
checkout management.  It looks to me like each branch has a git repo
that only shares objects that existed as of the initial cloning, so
that over time each branch eats more and more unshared space.  Also
I wonder about the value of keeping around a checked-out tree per
branch and copying it each time rather than just checking out fresh.
What I see on dromedary, which has been around a bit less than a year,
is that the at-rest space consumption for all 6 active branches is
2.4G even though a single copy of the git repo is just over 400MB:

$ du -hsc pgmirror.git HEAD REL*
416M    pgmirror.git
363M    HEAD
345M    REL9_0_STABLE
351M    REL9_1_STABLE
354M    REL9_2_STABLE
358M    REL9_3_STABLE
274M    REL9_4_STABLE
2.4G    total

It'd presumably be worse on a critter that's existed longer.

Curious to know if you've looked into alternatives here.  I realize
that the tradeoffs might be different with an external git repo,
but for one being managed by the buildfarm script, it seems like
we could do better than this space-wise, for (maybe) little time
penalty.  I'd be willing to do some experimenting if you don't have
time for it.
        regards, tom lane



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Michael Paquier
Дата:
Сообщение: Re: New CF app deployment
Следующее
От: Robert Haas
Дата:
Сообщение: Re: Re: Better way of dealing with pgstat wait timeout during buildfarm runs?