From: Duncan <1i5t5.duncan@cox.net>
To: linux-btrfs@vger.kernel.org
Subject: Re: Raid 0 setup doubt.
Date: Mon, 28 Mar 2016 08:51:12 +0000 (UTC) [thread overview]
Message-ID: <pan$371b2$4e875ee0$31aca9be$a76ec9b6@cox.net> (raw)
In-Reply-To: 001c01d188b2$732fbe40$598f3ac0$@codenest.com
James Johnston posted on Mon, 28 Mar 2016 05:26:56 +0000 as excerpted:
> For me, I use swap on an SSD, which is orders of magnitude faster than
> HDD.
> Swap can still be useful on an SSD and can really close the gap between
> RAM speeds and swap speeds. (The original poster would do well to use
> one.)
FWIW, swap on ssd is an entirely different beast, and /can/ still make
quite a lot of sense. I'll absolutely agree with you there.
However, this wasn't about swap on ssd, it was about swap on hdd, and the
post was already long enough, without adding in the quite different
discussion of swap on ssd. My posts already tend to be longer than most,
and I have to pick /somewhere/ to draw the line. This was simply the
"somewhere" that I drew it in this case.
So thanks for raising the issue and filling in the missing pieces. I
think we agree, in general, about swap on ssd.
That said, here for example is a bit of why I ask the question, ssd or no
ssd (spacing on free shrunk a bit for posting):
$ uptime
00:07:50 up 11:28, 2 users, load average: 0.04, 0.43, 1.01
$ free -m
total used free shared buff/cache available
Mem: 16073 725 12632 1231 2715 13961
Swap: 0 0 0
16 GiB RAM, 12.5 GiB entirely free even with cache and buffers taking a
bit under 3 GiB of RAM. That's in kde/plasma5, after nearly 12 hours
uptime. (Tho I am running gentoo with more stuff turned off at build-
time than will be the case on most general-purpose binary distros, where
lots of libraries that most people won't use are linked in for the sake
of the few that will use them. Significantly, I also have baloo turned
off at build time, which still unfortunately requires some trivial
patching on gentoo/kde, and stay /well/ clear of anything kdepim/akonadi
related as both too bloated and far too unstable to handle my mail,
etc.) Triple full-hd 1080 monitors.
OK, startup firefox playing a full-screen 1080p video and let it run a
bit... about half a GiB initial difference, 1.2 GiB used, only about 12
GiB free, then up another 200 MiB used in a few minutes.
Now this is gentoo and it's my build machine. It's only a six-core so I
don't go hog-wild with the parallel builds, but portage is pointed at a
tmpfs for its temporary build environment and my normal build settings
allow 12 builds at a time, upto a load-average of 6, and each of those
builds is set for upto 10 parallel jobs to a load average of 8 (thus
encouraging parallelism at the individual package level first, and only
where that doesn't utilize all cores does it load more packages to build
in parallel). I sometimes see upto 9 packages building at once and
sometimes a 1-minute load of 10 or higher when build process that are
already setup push it above the configured load-average of 8.
I don't run any VMs (but for an old DOS game in DOSSHELL, which qualifies
as a VM, but from an age when machines with memory in the double-digit
MiB were high-dollar, so it hardly counts), I keep / mounted ro except
when I'm updating it, and the partition with all the build trees,
sources, ccache and binpkgs is kept unmounted as well when I'm not using
it. Further, my media partition is unmounted by default as well.
But even during a build, I seldom use up all memory and start actually
dumping cache, so which is when stuff would start getting pushed to swap
as well if I had it, so I don't bother.
Back on my old machine I had 8 GiB RAM and swap, with swappiness[1] set
to 100, I'd occasionally see a few hundred MB in swap, but seldom over a
gig. That was with a four-device spinning-rust mdraid1 setup, with swap
similarly set to 4-way-striped via equal swap priority, but that machine
was an old original dual-socket 3-digit opteron maxed out with dual-core
Opteron 290s, so 2x2=4-core, and I had it accordingly a bit more limited
in terms of parallel build jobs.
These days the main system is on dual ssds partitioned up in parallel,
running multiple separate btrfs-raid1s on the pairs of partitions, one on
each of the ssds. Only media and backups is still on spinning rust, but
given those numbers and the fact that suspend-to-ram works well on this
machine and I never even tried suspend-to-disk, I just didn't see the
point of setting up swap.
When I upgraded to the new machine, given the 6-core instead of 4-core, I
decided I wanted more memory as well. But altho 16 GiB is the next power-
of-two above the 8 GiB I was running (actually only 6 GiB by the time I
upgraded, as a stick had died that I hadn't replaced) and I got 16 GiB
for that reason, 12 GiB would have actually been plenty, and would have
served my generally don't dump cache rule pretty well.
That became even more the case when I upgraded to SSDs shortly
thereafter, as recaching on ssd isn't the big deal it was with spinning
rust, where I really did hate to reboot and lose all that cache that I'd
have to read off of slow spinning rust again.
Which I guess goes to support the argument I had thought about making in
the original post and then left out, intending to followup on it if the
OP posted memory size and usage, etc, details. If he's running 16 GiB as
I am, and is seeing GiB worth of memory sit entirely unused, even for
cache, most of the time as I am, then really, there's little need for
swap. That may actually be the case even with 8 GiB RAM, if his files
working set is small enough.
OTOH, if he's only running a 4 GiB RAM or less system or his top-line
free value (before cache and buffers are subtracted) is often under say
half a GiB to a GiB, then chances are he's dumping cache at times and can
use either more ram or swap (possibly with a tweaked swappiness), as on
spinning rust dumped cache can really hurt performance, and thus really
/hurts/ to see.
OK, here's my free -m now (minus the all-zeros swap line), after running
a an hour or so of youtube 1080p videos in firefox (45):
total used free shared buff/cache available
Mem: 16073 1555 11769 1245 2748 13116
Tho it does get up there to around 12 GiB used (incl buffer/cache), only
about 4 GiB free if I do a big update, sometimes even a bit above that,
but so seldom does it actually start dumping cache, that as I said, 12
GiB would have actually been a better use of my money than the 16 I got,
tho it wouldn't have been that nice round power-of-two.
OTOH, that /will/ let me upgrade to say an 8-core CPU and similarly
upgrade parallel build-job settings, if I decide to, without bottlenecking
on memory, always a nice thing. =:^)
---
[1] Swappiness: The /proc/syst/vm/swappiness knob, configurable via
sysctl on most distros. Set to 100 it says always swap out instead of
dumping cache; set to 0 it says always dump cache to keep apps from
swapping; the default is normally 60, IIRC.
--
Duncan - List replies preferred. No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master." Richard Stallman
next prev parent reply other threads:[~2016-03-28 8:51 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-27 10:35 Raid 0 setup doubt Jose Otero
2016-03-28 0:56 ` Duncan
2016-03-28 5:26 ` James Johnston
2016-03-28 8:51 ` Duncan [this message]
2016-03-28 12:35 ` Austin S. Hemmelgarn
2016-03-29 1:46 ` Duncan
2016-03-29 2:10 ` Chris Murphy
2016-03-28 20:30 ` Jose Otero
2016-03-29 4:14 ` Duncan
2016-03-28 2:42 ` Chris Murphy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='pan$371b2$4e875ee0$31aca9be$a76ec9b6@cox.net' \
--to=1i5t5.duncan@cox.net \
--cc=linux-btrfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).