public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: Duncan <1i5t5.duncan@cox.net>
To: gentoo-dev@lists.gentoo.org
Subject: [gentoo-dev] Re: Packages up for grabs
Date: Mon, 24 Jun 2013 15:27:19 +0000 (UTC)	[thread overview]
Message-ID: <pan$23f2d$9004945f$576ee996$b7e282de@cox.net> (raw)
In-Reply-To: 20130616232427.063566d4@TOMWIJ-GENTOO

Tom Wijsman posted on Sun, 16 Jun 2013 23:24:27 +0200 as excerpted:

> On Sun, 16 Jun 2013 19:33:53 +0000 (UTC)
> Duncan <1i5t5.duncan@cox.net> wrote:
> 
>> TL;DR: SSDs help. =:^)
> 
> TL;DR: SSDs help, but they don't solve the underlying problem. =:-(

Well, there's the long-term fix to the underlying problem, and there's 
coping strategies to help with where things are at now.  I was simply 
saying that an SSD helps a LOT in dealing with the inefficiencies of the 
current code.  See the "quite apart... practical question of ... dealing 
with the problem /now/" bit quoted below.

> I have one; it's great to help make my boot short, but it isn't really a
> great improvement for the Portage tree. Better I/O isn't a solution to
> computational complexity; it doesn't deal with the CPU bottleneck.

But here, agreed with ciaranm, the cpu's not the bottleneck, at least not 
from cold-cache.  It doesn't even up the cpu clocking from minimum as 
it's mostly filesystem access.  Once the cache is warm, then yes, it ups 
the CPU speed and I see the single-core behavior you mention, but cold-
cache, no way; it's I/O bound.

And with an ssd, the portage tree update (the syncs both of gentoo and 
the overlays) went from a /crawling/ console scroll, to scrolling so fast 
I can't read it.

>> Quite apart from the theory and question of making the existing code
>> faster vs. a new from-scratch implementation, there's the practical
>> question of what options one can actually use to deal with the problem
>> /now/.
> 
> Don't rush it: Do you know the problem well? Does the solution properly
> deal with it? Is it still usable some months / years from now?

Not necessarily.  But first we must /get/ to some months / years from 
now, and that's a lot easier if the best is made of the current 
situation, while a long term fix is being developed.

>> FWIW, one solution (particularly for folks who don't claim to have
>> reasonable coding skills and thus have limited options in that regard)
>> is to throw hardware at the problem.
> 
> Improvements in algorithmic complexity (exponential) are much bigger
> than improvements you can achieve by buying new hardware (linear).

Same song different verse.  Fixing the algorithmic complexity is fine and 
certainly a good idea longer term, but it's not something I can use at my 
next update.  Throwing hardware at the problem is usable now.

>> ---
>> [1] I'm running ntp and the initial ntp-client connection and time sync
>> takes ~12 seconds a lot of the time, just over the initial 10 seconds
>> down, 50 to go, trigger on openrc's 1-minute timeout.
> 
> Why do you make your boot wait for NTP to sync its time?

Well, ntpd is waiting for the initial step so it doesn't have to slew so 
hard for so long if the clock's multiple seconds off.

And ntpd is in my default runlevel, with a few local service tasks that 
are after * and need a good clock time anyway, so...

> How could hardware make this time sync go any faster?

Which is what I said, that as a practical matter, my boot didn't speed up 
much /because/ I'm running (and waiting for) the ntp-client time-
stepper.  Thus, I'd not /expect/ a hardware update (unless it's to a more 
direct net connection) to help much.

>> [2] ... SNIP ... runs ~1 hour ... SNIP ...
> 
> Sounds great, but the same thing could run in much less time. I have
> worse hardware, and it doesn't take much longer than yours do; so, I
> don't really see the benefits new hardware bring to the table. And that
> HDD to SSD change, that's really a once in a lifetime flood.

I expect I'm more particular than most about checking changelogs.  I 
certainly don't read them all, but if there's a revision-bump for 
instance, I like to see what the gentoo devs considered important enough 
to do a revision bump.  And I religiously check portage logs, selecting 
mentioned bug numbers probably about half the time, which pops up a menu 
with a gentoo bug search on the number, from which I check the bug 
details and sometimes the actual git commit code.  For all my overlays I 
check the git whatchanged logs, and I have a helper script that lets me 
fetch and then check git whatchanged for a number of my live packages, 
including openrc (where I switched to live-git precisely /because/ I was 
following it closely enough to find the git whatchanged logs useful, both 
for general information and for troubleshooting when something went wrong 
-- release versions simply didn't have enough resolution, too many things 
changing in each openrc release to easily track down problems and file 
bugs as appropriate), as well.

And you're probably not rebuilding well over a hundred live-packages 
(thank $DEITY and the devs in question for ccache!) at every update, in 
addition to the usual (deep) @world version-bump and newuse updates, are 
you?

Of course maybe you are, but I did specify that, and I didn't see 
anything in your comments indicating anything like an apples to apples 
comparision.

>> [3] Also relevant, 16 gigs RAM, PORTAGETMPDIR on tmpfs.
> 
> Sounds all cool, but think about your CPU again; saturate it...
> 
> Building the Linux kernel with `make -j32 -l8` versus `make -j8` is a
> huge difference; most people follow the latter instructions, without
> really thinking through what actually happens with the underlying data.
> The former queues up jobs for your processor; so the moment a job is
> done a new job will be ready, so, you don't need to wait on the disk.

Truth is, I used to run a plain make -j (no number and no -l at all) on 
my kernel builds, just to watch the system stress and then so elegantly 
recover.  It's an amazing thing to watch, this Linux kernel thing and how 
it deals with cpu oversaturation.  =:^)

But I suppose I've gotten more conservative in my old age. =:^P  
Needlessly oversaturating the CPU (and RAM) only slows things down and 
forces cache dump and swappage.  These days according to my kernel-build-
script configuration I only run -j24, which seems a reasonable balance as 
it keeps the CPUs busy but stays safely enough within a few gigs of RAM 
so I don't dump-cache or hit swap.  Timing a kernel build from make clean 
suggests it's the same sub-seconds range from -j10 or so, up to (from 
memory) -j50 or so, after which build time starts to go up, not down.

> Something completely different; look at the history of data mining,
> today's algorithms are much much faster than those of years ago.
> 
> Just to point out that different implementations and configurations have
> much more power in cutting time than the typical hardware change does.

I agree and am not arguing that.  All I'm saying is that there are 
measures that a sysadmin can take today to at least help work around the 
problem, today, while all those faster algorithms are being developed, 
implemented, tested and deployed. =:^)

-- 
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



  parent reply	other threads:[~2013-06-24 15:28 UTC|newest]

Thread overview: 97+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-16  9:49 [gentoo-dev] Packages up for grabs Pacho Ramos
2013-06-16 12:48 ` Dirkjan Ochtman
2013-06-16 13:55   ` Brian Dolbec
2013-06-16 14:44     ` Tom Wijsman
2013-06-16 17:09       ` Brian Dolbec
2013-06-16 17:21         ` Pacho Ramos
2013-06-16 17:27           ` hasufell
2013-06-16 18:28             ` Tom Wijsman
2013-06-16 18:21           ` Brian Dolbec
2013-06-16 18:23           ` Tom Wijsman
2013-06-16 19:33             ` [gentoo-dev] " Duncan
2013-06-16 19:43               ` Andreas K. Huettel
2013-06-16 21:24               ` Tom Wijsman
2013-06-16 21:38                 ` Ciaran McCreesh
2013-06-16 22:07                   ` Tom Wijsman
2013-06-16 22:20                     ` Ciaran McCreesh
2013-06-24 15:27                 ` Duncan [this message]
2013-06-24 23:18                   ` Tom Wijsman
2013-06-25  6:16                     ` Duncan
2013-06-16 19:43             ` [gentoo-dev] " Ciaran McCreesh
2013-06-16 21:57             ` Zac Medico
2013-06-16 22:15               ` Ciaran McCreesh
2013-06-16 21:13     ` Tim Harder
2013-06-17  0:52 ` Rafael Goncalves Martins
2013-06-17  5:16 ` Sergey Popov
2013-06-17  5:25   ` Brian Harring
2013-06-17 20:32 ` vivo75
  -- strict thread matches above, loose matches on Subject: below --
2018-03-10 13:12 Pacho Ramos
2018-03-10 23:53 ` [gentoo-dev] " Michael Palimaka
2017-04-27 10:58 [gentoo-dev] " Dirkjan Ochtman
2017-06-28  9:19 ` [gentoo-dev] " Dirkjan Ochtman
2017-03-26 19:50 [gentoo-dev] " aidecoe
2017-03-27  8:13 ` [gentoo-dev] " Marek Szuba
2016-08-07  9:26 [gentoo-dev] " Pacho Ramos
2016-08-07 15:50 ` [gentoo-dev] " Michael Palimaka
2016-08-06 14:39 Felix Janda
2016-08-06 16:04 ` Peter Stuge
2016-08-06 16:22   ` Michał Górny
2016-08-06 19:28     ` Peter Stuge
2016-08-06 20:47       ` Rich Freeman
2016-08-06 20:55         ` Michał Górny
2016-08-06 22:32           ` Rich Freeman
2016-08-06 21:12       ` Peter Stuge
2016-08-07  6:48         ` Michał Górny
2016-08-07  7:38           ` Consus
2016-08-07 13:24             ` james
2016-08-07 13:32               ` Kent Fredric
2016-08-07 14:06                 ` Alan McKinnon
2016-08-07 14:46                   ` Alec Ten Harmsel
2016-08-07 17:36                   ` james
2016-08-07 20:04                     ` Alan McKinnon
2016-08-07 20:48                       ` Patrick Lauer
2016-08-07 22:29                         ` james
2016-08-07 21:49                       ` james
2016-08-08  3:22                         ` Kent Fredric
2016-08-08  5:26                           ` james
2016-08-08  4:33                             ` Kent Fredric
2016-08-08  5:43                               ` Kent Fredric
2016-08-07 17:24                 ` james
2016-08-07 16:21                   ` Ciaran McCreesh
2016-08-07 17:59                     ` james
2016-08-07 14:09               ` Consus
2016-08-07 17:44                 ` james
2016-08-07 14:47               ` Rich Freeman
2016-08-07 17:47                 ` james
2016-08-07 17:49                   ` Rich Freeman
2016-08-07 19:33                     ` james
2016-08-07  4:04       ` Kent Fredric
2016-06-02 15:42 [gentoo-dev] " james
2016-06-03 17:02 ` [gentoo-dev] " Justin Bronder
2016-06-03 18:41   ` james
2014-11-24  1:17 [gentoo-dev] " hasufell
2014-11-24  3:08 ` Daniel Campbell
2014-11-26  9:15   ` Yixun Lan
2014-11-27  9:51     ` Daniel Campbell
2014-12-03 16:34       ` [gentoo-dev] " Harvey
2014-12-04  6:17         ` Daniel Campbell
2014-11-11 14:59 [gentoo-dev] " Pavlos Ratis
2014-11-14  3:02 ` Tom Wijsman
2014-12-01 11:00   ` Pacho Ramos
2015-01-07 14:06     ` Pacho Ramos
2015-01-08  1:29       ` Andrew Savchenko
2015-01-08  9:28         ` [gentoo-dev] " Duncan
2015-01-08 10:12           ` Duncan
2013-06-16 10:03 [gentoo-dev] " Pacho Ramos
2013-06-16 10:24 ` [gentoo-dev] " Pacho Ramos
2013-06-16  9:31 [gentoo-dev] " Pacho Ramos
2013-06-16 12:19 ` gmt
2013-06-16 12:27   ` Pacho Ramos
2013-06-16 13:02     ` gmt
2013-06-16 13:22       ` [gentoo-dev] " Michael Palimaka
2013-01-20 10:30 [gentoo-dev] " Pacho Ramos
2013-01-20 19:15 ` [gentoo-dev] " Mike Gilbert
2012-03-01 22:17 [gentoo-dev] " Markos Chandras
2012-03-06  4:40 ` [gentoo-dev] " Ryan Hill
2011-01-06 12:17 [gentoo-dev] " Christian Faulhammer
2011-01-06 12:32 ` Dirkjan Ochtman
2011-01-12  9:24   ` [gentoo-dev] " Christian Faulhammer
2011-01-06 17:34 ` [gentoo-dev] " Sebastian Pipping
2011-01-07  8:49   ` [gentoo-dev] " Christian Faulhammer
2011-01-07 16:39     ` Sebastian Pipping
2011-01-07 18:57       ` Christian Faulhammer
2010-10-10 14:45 [gentoo-dev] " Markos Chandras
2010-10-10 16:13 ` [gentoo-dev] " Diego Elio Pettenò
2010-10-12  0:52   ` Jeroen Roovers
2010-10-12  6:01     ` Duncan
2010-10-12 17:17       ` Tomás Touceda
2009-02-11 18:02 [gentoo-dev] " Santiago M. Mola
2009-02-12  3:12 ` [gentoo-dev] " Ryan Hill
2008-10-31 20:42 [gentoo-dev] packages " Daniel Drake
2008-11-09  8:39 ` [gentoo-dev] " Diego 'Flameeyes' Pettenò
2008-07-20  6:44 [gentoo-dev] Packages " Christian Faulhammer
2008-07-20 17:01 ` Alexis Ballier
2008-07-21  6:27   ` [gentoo-dev] " Christian Faulhammer
2008-07-20 18:21 ` [gentoo-dev] " Thomas Anderson
2008-07-21  6:27   ` [gentoo-dev] " Christian Faulhammer
2008-05-31  5:09 [gentoo-dev] packages " Mike Frysinger
2008-05-31  8:05 ` Donnie Berkholz
2008-05-31  9:13   ` [gentoo-dev] " Tiziano Müller
2008-05-31 14:35 ` [gentoo-dev] " Philip Webb
2008-05-31 17:04   ` Thilo Bangert
2008-05-31 17:05     ` [gentoo-dev] " Ali Polatel
2008-05-31 15:33 ` Ali Polatel
2008-06-02 14:57 ` Diego 'Flameeyes' Pettenò
2008-06-02 19:47 ` Gunnar Wrobel
2008-06-02 20:45   ` Joe Peterson
2008-06-02 23:59     ` Joe Peterson
2008-05-28  7:03 [gentoo-dev] Packages " Krzysiek Pawlik
2008-06-05 20:57 ` [gentoo-dev] " Tiziano Müller
2007-12-25 18:19 [gentoo-dev] " Christian Heim
2007-12-26 10:16 ` Gilles Dartiguelongue
2007-12-26 15:39   ` [gentoo-dev] " Bernd Steinhauser
2008-01-24 15:30 ` Ali Polatel
2007-09-05 17:15 [gentoo-dev] " Chris Gianelloni
2007-09-05 17:44 ` [gentoo-dev] " Christian Faulhammer

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$23f2d$9004945f$576ee996$b7e282de@cox.net' \
    --to=1i5t5.duncan@cox.net \
    --cc=gentoo-dev@lists.gentoo.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