On Mon, Aug 12, 2024 at 07:30:20AM -0400, Greg Troxel wrote: > Steve Rikli <s...@genyosha.net> writes: > > > 1) is my understanding correct? I.e. does tmpfs use main memory for > > backing, rather than swap or something else? > > It uses virtual memory which can be paged. So if you have swap space > configured, it can be bigger than physical memory. However, things in > /tmp will compete with other memory usage.
Makes sense. It was that competition with other memory usage I was hoping to avoid for this particular little system. With the newer and larger machine I may not bother. > > 2) can I configure /tmp as ffs rather than tmpfs? > > Absolutely. tmpfs is relatively new in the history of unix and having > tmp as a real filesystem is entirely reasonable. Oh, yes. To be clear, I was actually asking "can I?" in NetBSD with sysinst, not more generally. :-) Most of my systems (or at least the servers) have separate /tmp with the default native unix filesystem rather than tmpfs or other mfs. > So you can make a 4GB /tmp > separately so that when /tmp is full / is still ok. Or you can just > have one giant partition and take your chances, with more efficiency. I'm generally OK with one big / e.g. for laptops and other "single user" sort of systems, but for a multi-user system or a server with several services active, I prefer separate /, /var/, /tmp/ and swap to start, for much the same reasons you said. > 128G isn't that big a disk. Everything is relative. ;-) My first NetBSD (2.0 IIRC) systems were SPARC with 4 or 9GB SCSI HDD. Things are different now. :) But I must say, I'm enjoying coming back to NetBSD again. > Definitely add swap, maybe even more then 4G depending on what you want > to do. But 4G is probably enough for anything you want to put up with > waiting for anyway. So far it has been, e.g. 1GB RAM + 4GB swap has been working for FreeBSD world building. But i386 is apparently dropping out circa FreeBSD 15 so I'm getting ready for moving this system to NetBSD. > There is a really good question here. Which is, for some reasonable > workloads, building programs that use 100M of /tmp and 1.5 GB of /tmp, how > things go with > > both system 4 GB swap > > A) big / with tmp just part of / > > B) big / with 2GB tmpfs > > I am really not sure what is better. I suspect tmpfs performance is > better for the times when /tmp is only 100-200 MB or so. I am really > not sure how it would go with larger. I'd guess if you have a system with enough RAM, that /tmp on tmpfs will win, but 1GB RAM in this little VIA C7 ITX is all you get. :) Now, I've been assuming that a src build for NetBSD kernel + world may not run with 1GB RAM, ~250MB /tmp on tmpfs ("25%" from sysinst), and whatever swap sysinst will default to with this 128GB SSD; but maybe I'm being too pessemistic? Maybe I should just try it. :) Realistically though, I will probably end up using sysupgrade for this little old i386 system. > When building packages, some are ridiculous, e.g. thunderbird, which I > think needs around 19 GB of $WRKDIR space. I have code in mk.conf.local > to flip from /tmp/work to /nfs/ztmp/work-$hostname where the latter is > over NFS and a zfs filesystem on a big disk. It's slow but the builds > finish. So you may be able to use a smallish tmpfs and point specific > big jobs elsewhere. That's more work but higher performance - after you > get it right. That's a good point; I'd done package and ports builds in the past to NFS, but since most of my systems since then have "enough" diskspace I've usually done it locally. I can remember some builds back then being faster to a good NFS server than the (usually slow, small) local disk, but I wasn't putting SSD in i386 or SPARC back then. ;-) Thanks, sr.