Gentoo Archives: gentoo-amd64

From: Duncan <1i5t5.duncan@×××.net>
To: gentoo-amd64@l.g.o
Subject: [gentoo-amd64] Re: hardware choice
Date: Mon, 15 Dec 2008 08:41:01
Message-Id: pan.2008.12.15.08.40.37@cox.net
In Reply to: [gentoo-amd64] Re: hardware choice by Nikos Chantziaras
1 Nikos Chantziaras <realnc@×××××.de> posted gi4ng7$6qp$1@×××××××××.org,
2 excerpted below, on Mon, 15 Dec 2008 06:47:06 +0200:
3
4 > The reason I recommend the dual core over the quad core is that
5 > compiling isn't the primary use of a desktop PC. Application
6 > performance is, that's why the higher speed per core of the E8400 is IMO
7 > better.
8
9 I won't disagree with you, but I will throw in my own experience going
10 from single CPU to dual socket (before the dual-cores), now to dual dual-
11 core socket (so four cores, total), and add another factor to think
12 about. While it doesn't match your recommendation, it fails to match due
13 to one specific aspect, that may or may not be a factor for the OP.
14
15 A bit of history, first, going back some years to establish the
16 foundation. The upgrade to my first Athlon, the lowest speed they
17 offered IIRC, 500 MHz, was a very good one for me. I was extremely happy
18 with that machine, because for the first time I could run intensive
19 streaming, etc, say (keep in mind the era) a 300 kbps Real Video stream,
20 and keep up both with playing the video and handling the network video
21 stream, without a hitch! I could even drag the playing window around
22 with the mouse (in Windows 98, IIRC), and the thing would keep playing,
23 not a hitch! That 500 MHz Athlon was good stuff!
24
25 A few years later, I upgraded, way more than doubling the CPU and with
26 other efficiencies as well, to 1.33 GHz. I was quite disappointed with
27 that upgrade, particularly after the great experience I'd had with the
28 500 MHz Athlon. I thought, way more than double the speed, it should be
29 able to handle two of the things well that the 500 MHz machine could
30 handle one of so well, or handle one intensive one while being able to
31 keep up with several less intensive background tasks, say encoding a
32 video (or now, doing the latest emerge -uDN @world) while continuing to
33 do normal stuff on the desktop. I was wrong, it could still do only one
34 thing at a time well. Trying to get it to do something heavy in the
35 background while continuing to web browse or whatever in the foreground
36 didn't really work so well, and I ended up rather disappointed in that
37 upgrade.
38
39 Living with that for a few years, I realized what I had done wrong. Yes,
40 the thing was faster, but it was just a single CPU. I would have been
41 better off getting a dual CPU machine, even at just a GHz or likely even
42 at 800 MHz, than I was with the 1.33 GHz single CPU. I determined that I
43 wasn't going to make /that/ mistake again.
44
45 It was during this time that I switched from MSWindows (98) to Linux,
46 rather than upgrading to what I quickly labeled eXPrivacy, which was a
47 very bitter disappointment to me as I had to that point been a loyal MS
48 user (even running the IE 4, 5, and 5.5 betas). But eXPrivacy crossed a
49 line I simply was not going to cross, and MS very literally gave me
50 little choice BUT Linux. Of course, now, I'm glad they gave me that push
51 (can't thank them enough for it, actually!), but without it, I'd have
52 likely still been an MS user today. Unfortunately, the problem was NOT
53 just the W98 scheduler, as Linux was bumpy trying to do multiple things
54 at once too. I really DID need a multi-CPU solution, and determined that
55 was what my next one would be.
56
57 As it turned out, my next upgrade was from ia32 to amd64, as well as from
58 single CPU to dual CPU. I purchased a dual socket Opteron box,
59 originally dual Opteron 242s. And yes, I had been correct in my guess.
60 The dual Opteron, even tho I just upped the speed from my previous 1.33
61 GHz to the 1.6 GHz of the Opteron 242s, and only had a gig of RAM, was
62 everything I had dreamed about in terms of properly multitasking. Even
63 if I let the heavy multi-threaded task use all the scheduler would give
64 it of both CPUs, it was STILL WAY WAY WAY smoother and more pleasant to
65 work with than the single CPU.
66
67 But, I DID notice one nagging problem. If for some reason something got
68 in an infinite loop, hogging one of the CPUs, while it didn't mean no
69 hope, reboot and get it over with, like could have with a single CPU,
70 that old jerkiness of running the rest of the system on a single CPU came
71 back. Having actually experienced the smoothness a dual CPU could give,
72 the experience both under runaway thread conditions and under extreme CPU
73 load still left something to be desired.
74
75 Well, as it happens, I still have that same mobo, but I've upgraded
76 pretty much everything else around it. I'm now running 4-way md/kernel
77 RAID-6 for my main system (with some parts I don't need redundancy on
78 RAID-0, for speed), and upgraded the memory to a full 8 gigs, which was
79 nice.
80
81 But the upgrade to dual dual-cores, for four cores total across two CPU
82 sockets, was what really surprised me. Like you I /had/ thought dual-
83 core was pretty much enough for me. After all, I run pretty much a
84 desktop system, altho as probably all of us here it's Gentoo, which does
85 put us in the upper 20% of the demand profile for those with desktop
86 systems.
87
88 BUT, what I found out, was that actual usability VASTLY improved! In
89 fact, I haven't been as happy with an upgrade since that upgrade to my
90 first 500 MHz Athlon that I started this story with! The four cores
91 really DO make a difference, and it's MUCH MUCH bigger a difference that
92 I would have ever expected.
93
94 Now, running Gentoo, I'm sure you're familiar with compiling stuff, and
95 possibly with trying to do something else while you do. On a single CPU
96 single-core, yeah, there are things you can do to mitigate the effects
97 and make it sort of work, but you definitely still notice it. On a dual-
98 core or a dual-socket single-core, you can actually do stuff while
99 compiling without too much of a problem, but, you do still notice it a
100 bit.
101
102 What amazes me is that with the four cores, as long as I keep memory
103 usage under control, I can run utterly ridiculous load averages, say
104 several hundred, while compiling the kernel, a load average of 100 per
105 core. Yet properly tuned, /you/ /pretty/ /much/ /don't/ /even/ /notice/
106 /it/! Keep in mind that it's NOT the memory, as I had upgraded to the
107 the 8 gigs RAM before I upgraded to the dual dual-cores, and it's NOT the
108 RAID, for the same reason. Neither is it the fact that I have
109 PORTAGE_TMPDIR pointing at tmpfs, again, because once I got the 8 gigs
110 RAM, I was doing that back with the dual-cores too.
111
112 Now, the kernel is nice to run lots of build jobs on, because those jobs
113 do use relatively little memory. In practice, I normally run -j -l21,
114 limiting to 21 load not because of the CPU load directly, but because of
115 the memory most compiles require. But as I said, as long as memory usage
116 stays reasonable (which with the 4-way striped swap, means say half a gig
117 or less into swap, the same effect on a single-disk machine would be
118 probably 100 MB or so into swap, maybe less), once I upgraded from a
119 total of two cores to four, load average basically /does/ /not/ /matter/
120 any more. It literally ceases to be an issue. A load average of one
121 (0.25 per core), 2 per core, 10 per core, 100 per core, doesn't matter,
122 the desktop is still very close to as responsive as it always is.
123
124 The same goes for those runaway processes I mentioned. With a single
125 core, it was pretty much game over. You could usually quit programs and
126 shutdown safely if you tried, but it was an exercise in patience to do
127 so. With dual cores (either as two sockets single-core each, as I
128 originally had on this board here, or the single socket dual-cores so
129 common now), it's better. You can still run your stuff, sort of, and the
130 system continues functioning well enough to shut down without too much
131 trouble.
132
133 With the four cores, a few days ago I noticed a runaway process (a kernel
134 process, no less, inotify or whatever, watching for a changed file, only
135 something went wrong when I deleted the file, likely because I'm running
136 directly off of Linus' git kernels and that code likely hit a bug) on my
137 ksysguard graph, and wondered to myself how long it had been pegging 100%
138 on that core, since I hadn't noticed any difference in performance at
139 all. Well, I wasn't ready to reboot at the time, and I let it run. The
140 thing ran for well over 24-hours, unkillable because it's a kernel
141 thread, pegging 100% on one or another of the cores (it would switch
142 cores once in awhile), while I did my thing, uninterrupted. I eventually
143 did reboot when I came to a convenient point to do so, mainly because I
144 was tired of seeing that thing spiking 100% all the time, not because it
145 affected performance. If I'd have not had the ksysguard graphing it, I'd
146 have literally never even known!
147
148 Of course, once you've seen the system handle 100 load per core without a
149 sweat, it's little surprise that it could handle a single-thread runaway
150 process keeping a single core pegged to 100, with the others effectively
151 idling most of the time, or even if they had a bit of work to do some of
152 the time.
153
154 It's that experience that has me recommending something different than
155 you. Yes, it's a desktop machine. But we DO run Gentoo, so DO put it to
156 use once in awhile. And, having at least three cores does make a big
157 difference over two. With two, if one drops out, either because of a
158 runaway process or because you're compiling in the background (at -j1 so
159 it only affects the one CPU), the remaining single core is left having to
160 multitask everything else, and it really does show up in lowered system
161 usability. That third core (tri-core Phenom) or go for four, really DOES
162 make a difference, at least the way I use my machine, and the way I
163 expect most Gentoo users will want to use it, if they can. There's
164 desktop, and there's Gentoo desktop, and at least for a Gentoo user, that
165 third core DOES make a difference.
166
167 OTOH, I really can't see what I'd do with >4 cores ATM. As the
168 experience above demonstrated, with four, a single core can drop out and
169 I don't notice it. What would I do with eight, or even six? Maybe
170 decrease the compile-time where I'm merging stuff that can parallelize
171 sufficiently? Sure, but is it worth it? At this point, four cores is
172 I'd say the sweat spot.
173
174 Then there's memory. Seriously. make it 4 gig. You'll use it. 8 gig is
175 nice, but honestly, the last couple gig, or even the last four, run empty
176 a lot of the time. So 8 gig memory if you can afford it, at least for a
177 quad-core (4 for a dual-core is almost the same as 8 for a quad-core, for
178 a dual-core, I'd say 2 gig minimum), but do plan on getting four, or
179 you'll be crimping the efficiency of those cores.
180
181 Then there's disk. Honestly, I'd say go for a 4-spindle SATA array you
182 can run kernel RAID on, before upping from 4 to 8 gigs RAM. A quad-core
183 (or minimum tri-core for those going AMD who can therefore get it), 4 gig
184 RAM, 4-way-SATA-in-kernel-RAID system, is going to be a very well
185 balanced system, remarkably free of bottlenecks. The learning curve on
186 kernel RAID can be a bit steep, certainly, but get a system that well
187 balanced tuned to make use of all components well, and you /will/ notice
188 the difference! You /will/ wonder how you ever got along without it.
189
190 --
191 Duncan - List replies preferred. No HTML msgs.
192 "Every nonfree program has a lord, a master --
193 and if you use the program, he is your master." Richard Stallman