[HEADS-UP] Rawhide: /tmp is now on tmpfs
Harald Hoyer
harald.hoyer at gmail.com
Thu Jul 12 19:54:33 UTC 2012
On Thu, Jul 12, 2012 at 6:43 PM, David Sommerseth <davids at redhat.com> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On 01/06/12 19:42, Brian Wheeler wrote:
>>
>>
>> On 06/01/2012 12:21 PM, Lennart Poettering wrote:
>>> I think most of the noise in this flame thread is due to a
>>> misunderstanding how modern memory management works and the
>>> assumption that having an explicit size limit on /tmp was a bad
>>> thing, even though it actually is a good thing... In fact, we
>>> need much stronger limits than what tmpfs currently provides:
>>> per-user limits on the usage of /tmp. But that's something for
>>> the future...
>>>
>>> Lennart
>>>
>>
>> I understand how memory management works...which is why this seems
>> like a terrible idea.
>>
>> Can you provide numbers that show that there is a speed increase
>> with this scheme which offsets the amount of change required to do
>> this? I haven't seen anything other than "its faster".
>>
>> This is change is troublesome for multiple reasons: * It switches
>> the semantics of what /tmp is. Its now apparently for small and
>> short-lived files. Where small and short-lived are defined based
>> on the RAM usage at the time a file is created. Hooray for
>> heisenbugs! * everything that did use /tmp now should use /var/tmp
>> which means patching a ton of programs and hoping that third party
>> applications do the same thing. So the "problem" this fixes with
>> /tmp now exists in /var/tmp. * there are no numbers which back up
>> the purported benefits * file data gets moved out of RAM (in this
>> case, to swap) not when it is convenient for the kernel at a
>> potentially idle time but when the kernel is experiencing memory
>> pressure. * changing the amount of space available in /tmp means
>> screwing with swap files
>>
>> How is this change a win?
>
> I sense a long term strategy ...
>
> a) Move /tmp to tmpfs
> b) all programs using /tmp uses /var/tmp
> c) all failing programs enforces $TMPDIR to be set to /var/tmp
> d) Somebody discovers that /tmp is no longer in use - and propose to
> remove /tmp all in all
>
> But we're just at the beginning...
>
> Having that said ... I really see some benefits of /tmp on tmpfs, but
> for large workloads which depends on /tmp or $TMPDIR it will be a
> pain, no matter what, IMO. And it strikes me as interesting that
> Solaris have been doing a similar tmpfs approach for years; yet still
> the thumb-rule seems to be "get rid of that ram-fs-stuff and put /tmp
> on a real drive". And I wonder why........
>
> A couple of times (several years ago now), I've experienced /tmp being
> filled up with junk - and at that time /tmp was a part of /. And that
> caused even more fun challenges. So I started deploying /tmp on a
> separate LVM logical volume, with a restricted space. Since that
> time, all systems have been running quite stable - despite /tmp
> getting filled up from time to time. But that's usually not a problem,
> as in worst case that misbehaving program just dies.
>
> But I'm really curious to see what happens if this happens on a tmpfs
> based /tmp. If you have 4GB RAM server and a 4GB swap ... and then a
> program hits the system creating 8-9GB of trash in /tmp ... how will
> that impact the performance and responsiveness of the overall system?
> How will applications reading data from these memory pages being
> swapped out behave (in a performance, point of view) Will OOM killer
> at some point kick in? And if OOM killer starts, I'm curious which
> processes it will pick to kill ... I imagine this to be particular
> funny if you're running something RAM intensive, like something Java
> based (JBoss anyone?).
>
Again.. tmpfs is restricted to half the RAM size by default. You can't
store 8-9GB of trash.. only 2GB, which might land on swap over time.
More information about the devel
mailing list