← Back to team overview

desktop-packages team mailing list archive

[Bug 1430620] Re: gnome-terminal writes excessively to /tmp (affecting SSD drives)

 

> But I run out of ram space very rarely.

Maybe because you don't allow large (let alone infinite) scrollback.

> It's highly elegant to keep volatile data in RAM unless RAM is full.

How do you think gnome-terminal should handle that? Suppose you have 4
GB of ram, shall it consume up to 3 GB and then starting using the disk?
Sounds not only hard to implement, but also why should it take away RAM
from other apps?

That being said, I was not the one coming up with this design, see the
mentioned links for people who have more experience than me on topics
like memory fragmentation and OOM killer. I just pointed you to their
choice, which I also happen to agree with.

> My particular desktop SSD is at 19% lifetime

After using it for how long, which apps, etc.?  How much do you think
gnome-terminal contributed to this?  As I said, I'm happy to let you
know that vte 0.40 will save a lot by compressing the contents.

My DSLR is at 25% of its lifetime. 25k pictures, 100k promised by the
manufacturer. And it was definitely more expensive than a large SSD :)

> Aside from that writing to disk is dramatically more system overhead,
compared to RAM.

In case of g-t/vte, the goal was not to reduce this overhead as much as
possible, but to come up with a design that allows you to have freaking
huge (practically infinite) scrollback buffers.  Even with writing to
disk, vte performs reasonably well among terminal emulators when cat'ing
a large file, and disk writing speed is not the bottleneck, not even
with HDD.  And cat'ing a large file is really not the typical use case.

If you really feel like hacking: download latest vte (0.39.x or git),
and modify src/vtestream-file.h _file_write() so that a static variable
(that is a variable shared across all vte instances) is incremented by
len every time, and printed to some file every now and then. Compile and
install, overwriting Ubuntu's version of the lib. After restarting
gnome-terminal, this will tell you how much data your g-t writes during
a day. I'd be interested in seeing that number!

Also see the upstream links with discussions about putting these
temporary files under some tmpfs, its pros and cons.

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to vte in Ubuntu.
https://bugs.launchpad.net/bugs/1430620

Title:
  gnome-terminal writes excessively to /tmp (affecting SSD drives)

Status in vte package in Ubuntu:
  New

Bug description:
  1) In a gnome-terminal run "sudo fatrace -f W -t" (filter for writes plus timestamps).
  2) In another window cat a file to the screen.
  3) Observe the activity.  I see large churn on the /tmp partitition:

  20:41:24.158837 gnome-terminal(23352): W /tmp/#132835 (deleted)
  20:41:24.158837 gnome-terminal(23352): W /tmp/#132835 (deleted)
  20:41:24.159268 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.159268 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.159674 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.159674 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.160171 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.160171 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.160603 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.160603 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.160919 gnome-terminal(23352): W /tmp/#132835 (deleted)
  20:41:24.160919 gnome-terminal(23352): W /tmp/#132835 (deleted)
  20:41:24.161093 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.161093 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.161545 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.161545 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.161999 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.161999 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.162447 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.162447 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.162825 gnome-terminal(23352): W /tmp/#132835 (deleted)
  20:41:24.162825 gnome-terminal(23352): W /tmp/#132835 (deleted)
  20:41:24.162899 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.162899 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.163366 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.163366 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.163817 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.163817 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.164331 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.164331 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.164729 gnome-terminal(23352): W /tmp/#132835 (deleted)
  20:41:24.164729 gnome-terminal(23352): W /tmp/#132835 (deleted)
  20:41:24.164729 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.164729 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.165219 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.165219 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.165674 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.165674 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.166128 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.166128 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.166587 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.166587 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.166660 gnome-terminal(23352): W /tmp/#132835 (deleted)
  20:41:24.166660 gnome-terminal(23352): W /tmp/#132835 (deleted)
  20:41:24.167056 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.167056 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.167529 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.167529 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.167949 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.167949 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.168451 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.168451 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.168524 gnome-terminal(23352): W /tmp/#132835 (deleted)
  20:41:24.168524 gnome-terminal(23352): W /tmp/#132835 (deleted)
  20:41:24.168889 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.168889 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.169364 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.169364 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.169808 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.169808 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.170281 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.170281 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.170354 gnome-terminal(23352): W /tmp/#132835 (deleted)
  20:41:24.170354 gnome-terminal(23352): W /tmp/#132835 (deleted)
  20:41:24.170744 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.170744 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.171222 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.171222 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.171699 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.171699 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.172114 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.172114 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.172298 gnome-terminal(23352): W /tmp/#132835 (deleted)
  20:41:24.172298 gnome-terminal(23352): W /tmp/#132835 (deleted)
  20:41:24.172617 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.172617 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.173055 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.173055 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.173528 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.173528 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.173997 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.173997 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.174286 gnome-terminal(23352): W /tmp/#132835 (deleted)
  20:41:24.174286 gnome-terminal(23352): W /tmp/#132835 (deleted)
  20:41:24.174470 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.174470 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.174908 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.174908 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.175387 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.175387 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.175808 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.175808 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.176240 gnome-terminal(23352): W /tmp/#132835 (deleted)
  20:41:24.176240 gnome-terminal(23352): W /tmp/#132835 (deleted)
  20:41:24.176240 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.176240 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.176752 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.176752 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.177217 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.177217 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.177659 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.177659 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.178119 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.178119 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.178119 gnome-terminal(23352): W /tmp/#132835 (deleted)
  20:41:24.178119 gnome-terminal(23352): W /tmp/#132835 (deleted)
  20:41:24.178584 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.178584 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.179053 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.179053 gnome-terminal(23352): W /tmp/#132828 (deleted)
  20:41:24.184620 gnome-terminal(23352): W /tmp/#132355 (deleted)
  20:41:24.184620 gnome-terminal(23352): W /tmp/#132355 (deleted)
  20:41:24.196022 gnome-terminal(23352): W /tmp/#132753 (deleted)
  20:41:24.196022 gnome-terminal(23352): W /tmp/#132753 (deleted)
  20:41:24.196022 gnome-terminal(23352): W /tmp/#132355 (deleted)
  20:41:24.196022 gnome-terminal(23352): W /tmp/#132355 (deleted)
  20:41:24.196503 gnome-terminal(23352): W /tmp/#132355 (deleted)
  20:41:24.196503 gnome-terminal(23352): W /tmp/#132355 (deleted)

  Related, but not the same:
  https://bugs.launchpad.net/ubuntu/+source/vte/+bug/865082?comments=all

  The excessive churn eventually gets flushed to disk, affecting the
  lifetime of SSD drives.

  
  Normal gnome terminal operation (no cat) results in endless streams of:
  20:44:25.107540 gnome-terminal(23352): RW /tmp/#132355 (deleted)
  20:44:25.138015 gnome-terminal(23352): RW /tmp/#132753 (deleted)
  20:44:25.138015 gnome-terminal(23352): W /tmp/#132753 (deleted)
  20:44:25.138108 gnome-terminal(23352): W /tmp/#132355 (deleted)
  20:44:25.138108 gnome-terminal(23352): RW /tmp/#132355 (deleted)
  20:44:25.168764 gnome-terminal(23352): RW /tmp/#132355 (deleted)
  20:44:25.168764 gnome-terminal(23352): RW /tmp/#132753 (deleted)
  20:44:25.168764 gnome-terminal(23352): W /tmp/#132753 (deleted)
  20:44:25.168764 gnome-terminal(23352): W /tmp/#132355 (deleted)

  
  132753 is NOT the process number of the gnome-terminal.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/vte/+bug/1430620/+subscriptions


References