Drawbacks of using preload? Why isn't it included by default?

73,222

Solution 1

Simply put, Preload isn't for everyone. It is great if you open applications or libraries a lot. It is harmful if you load applications or libraries only occasionally. I will use two examples from my actual usage (and yes I use preload).

First, Google Chrome. Now a browser is opened only once per boot, maybe twice (for me, I am a web developer). Chrome and its related libraries stay in memory because I am always using it. Even when I close all the chrome windows it's still in the background doing its thing. Thus all the ram dedicated to holding a preload copy of Chrome is a total and utter waste. It's never (or rarely) unloaded. For the average user this is true for a great number of applications. A Office user will almost always have their email app open. So the small savings in startup time is completely wasted because they only open their email app once a day, and leave it open.

The Second example is rake. As a ruby developer that believes in testing I run rake a TON. rake runs, executes for a couple of seconds - minutes then exits. Preload helps me speed up my daily work because it loads rake and its needed libraries (which can be very extensive) ahead of time. So there are a lot of starts and stops to the running of rake. The extra ram used to speed up the 400 or 500 launches of rake over the span of a few hours is totally worth it.

So the reason it's not enabled by default is because its ability to actually improve performance is based largely on how you use your system. For some people it will be a negative and for others a positive.

Lastly, having preload on, even if you're not using it, consumes ram. So if you're not launching applications frequently, you could actually make your entire system fractionally slower by not having that ram available for other types of caching. Remember, even if you have 32 Gigs of ram Linux will try to use as much of it as it can to cache data to make your interaction faster. By using preload you reduce that free memory some. Even if it is just a little tiny bit, the 2 seconds you saved launching chrome 1 time could cost you 60 seconds over the month it stays running.

Solution 2

Question asked by bountier Saeed Zarinfam on September 5, 2012:

Hi all, I want to know, Is it a myth? Does [preload] really improve my performance? What are drawbacks of using it? I have a laptop with this specification (Core i5 CPU, 4GB RAM, 128GB SSD Hard). Thank you so much.

  • There's no real need for preload if you have an SSD
    • This is because SSDs provide much faster random access times than hard disks, so "pre-loading" binaries/dependencies in memory is a waste, IMO
    • The basic downside then is that preload is "using" additional memory without providing a tangible benefit.

Solution 3

Preload is an “adaptive readahead daemon” that runs in the background of your system, and observes what programs you use most often, caching them in order to speed up application load time. By using Preload, you can put unused RAM to good work, and improve the overall performance of your desktop system.

Don’t expect to see a drastic change in performance right away. Also, if you’re just opening/closing applications repetitively, your computer will store those files in cache anyway (this is called a “warm” load), so you won’t see any difference in speed there. You will, however, see a speed improvement if, for example, you use a program intermittently; these programs will start up faster than without Preload.

Preload can provide a great improvement in application start up time; since most modern machines have a good deal of memory to spare, Preload puts this RAM to good use.1

Now that being said, it seems that preload is a great utility, and it might be.

I think that the reason its not preloaded with the OS, is because the user has to know exactly what there doing, and have enough experience to be able to use it, and the system has to have enough RAM.

On a more technical aspect, preload works by moving data from the hard disk to RAM, which makes most hard disk to go to sleep mode if not used, and then have to spin back up when needed. So spinning up/down the drive, would cause the Load/Unload Cycle count, and the Power-On time count rise, and that will shorten the life of the drive.

We designed and implemented preload, a Markov-based adaptive prefetching scheme that works on application-level predictions. Moreover, preload is implemented in the userspace and does not change the application run-time environment in any sense. This is the first work experimenting with file-system prefetching at this level as far as we know.

Our experimental results show promising improvements on application start-up time compared to cold caches, and a decent hit rate compared to a na¨ıve prediction algorithm.

However, being in user-space introduces major obstacles into making preload a competitive solution to the startup-time problem. In particular, not having full information about applications’ I/O requests, and lack of strong communication channels with the page-cache subsystem degrades preload’s effectiveness drastically, especially under tight memory conditions.

Another inherent problem with the preload design is high variance and low prediction confidence caused by the relatively loose correlation of application start-ups. While we successfully build a model to track application correlations, the fact that application launches are very rare events compared to the timescale that computers work on, an application-level prefetching scheme is condemned to consume huge prefetching memory over practically infinite periods of time. This memory can be used to improve short-term cache behavior.

Finally, we come up with a set of recommendations for system developers on how to improve boot-time, login-time, and application startup-time without falling back to a prefetcher integrated with the cache subsystem in the kernel. Of course, a file-based prefetcher in the kernel can improve on top of that.2

1Source:techthrob

2Source:Preload - An Adaptive Prefetching Daemon by Behdad Esfahbod - A thesis submitted in conformity with the requirements for the degree of Master of Science - Graduate Department of Computer Science - University of Toronto Copyright (c) 2006 by Behdad Esfahbod.

Solution 4

Drawbacks? There are NONE!

Increased performance opening applications by the user. I have used it for years on my systems as well as "read-ahead" and have no issues. The bug page for preload doesn't suggest any drawbacks either.

Preload monitors applications that users run, and by analysing this data, predicts what applications users might run, and fetches those binaries and their dependencies into memory for faster startup times.

It does increase the boot time slightly however the speed decrease fetching time of applications far exceeds this little issue.

see article

If you're constantly using common apps like Firefox or Gimp you'll notice some greatly improved load times. Preload is a daemon that runs discretely in the background and will not disrupt your desktop in anyway. Ubuntu users can install preload with:

sudo apt-get install preload

Results:

Graph showing difference between normal and preload start

ref

Share:
73,222

Related videos on Youtube

Paradiesstaub
Author by

Paradiesstaub

Updated on September 18, 2022

Comments

  • Paradiesstaub
    Paradiesstaub over 1 year

    I would like to know what are the drawbacks of using preload? If there would be no downside, preload would be enabled by default, so I guess there are some.

    Okay you need a bit more RAM, but most people have by far more RAM then Ubuntu needs - so what are the downsides of using preload?

    • Saeed Zarinfam
      Saeed Zarinfam over 11 years
      Thank you for your useful question. I want to know, Is it a myth?
    • Mateo
      Mateo over 11 years
      cpu usage and battery might be a drawback for some... bugs.launchpad.net/ubuntu/+source/preload/+bug/481861
    • Admin
      Admin over 11 years
      Nice question. Some distributions do come loaded with preload, such as the elementary OS (which is what I run on my laptop because gala is way faster than Ubuntu's unity).
    • don.joey
      don.joey almost 11 years
      Just a guess: One reason for not including it by default is the fact that it is not usable on all systems (its hardware requirements might be different from the standard requirements).
    • Mateo
      Mateo almost 11 years
      brainstorm.ubuntu.com/idea/1122 a post here suggests that it "that it runs as a daemon with root privileges." Which may be a security issue, there is also this brainstorm wanting it's default inclusion brainstorm.ubuntu.com/idea/14092
  • Paradiesstaub
    Paradiesstaub about 12 years
    I know what it dose and I read several 'preload HowTos', but nowhere I could read something about the drawbacks. If there would be no draw backs it would be shipped by default with many Linux distributions - but as far as I know - thats not the case.
  • Marco
    Marco over 11 years
    The performance is not decreased, but increased. That's the whole point of using preload. Maybe it's just a typo.
  • Ringtail
    Ringtail over 11 years
    This doesn't cover the OP's question as are there any drawbacks to using preload? Second, you have formed an opinion, made a statement about "pre-loading" and then introduced "SSD" into the equation. At what point were you actually going to answer the question?
  • Glutanimate
    Glutanimate about 11 years
    Thank you for your answer, Mitch. These were my thoughts as well. Especially on laptops preload might be a problem. But still, I would love to find an official source/discussion on why the Ubuntu team decided against shipping preload.
  • munjal
    munjal almost 11 years
    Your diagram looks great but it lacks important information. It would 100% fit in a powerpoint presentation of a sales guy, but it is an example of 'bad statistics'. Where do these figures come from? What protocol was used to record them? Whas it a single snapshot? How many machines were involved in the sample? What was the hardware? How was the preload program configured?
  • Ringtail
    Ringtail almost 11 years
    @Frank use the 'ref' buddy! BTW I just reposted the info. So don't kill the messenger. If you think you can improve on the answer, by all means edit it. Otherwise...
  • munjal
    munjal almost 11 years
    @Ringtail: You're right. You're not the author of that diagram. But if you click through all the links in the articles, you come on a Techthrob.com page that should have hosted an article written by the author of the program. But that page has gone. So there is only source: the thesis of the author.
  • Peter and the wolf
    Peter and the wolf over 10 years
    One should upgrade the hardware if a gnome terminal takes more than 2 seconds to start up...
  • F-3000
    F-3000 over 8 years
    Also, using preload slows booting up. The more stuff is preloaded, the longer it takes to get your system up and running. Now, imagine that all you want to do is to boot up, write a sentence on a memo, and shut down right after. You'll be waiting to even to be able to write the memo, because your system is preloading things most likely unrelated to that task. Thus, in a way, preloading (in general) is a double-edged sword.
  • hurikhan77
    hurikhan77 over 8 years
    Preload isn't actually working that way... It gives the kernel hints like "hey load this into your cache while you are there, I will need it soon" and the kernel does so. So it's actually not using the RAM like you describe it. Two things may happen, tho: Loading into cache pushes out applications that you are going to use soon - which results in a short freeze and hard disk activity when you get back to the application.
  • hurikhan77
    hurikhan77 over 8 years
    Second: If preload predicts your usage pattern wrong (which may pretty well be the case if your have constantly loaded applications), it caches stuff which will later be pushed out of RAM again and in turn itself pushed cache out of RAM which you may had better use for. But in the end it only "consumes" RAM as the vfs cache does - so it's actually discardable RAM and thus "free RAM" in a way. It does however compete with the "normal cache" as you write.
  • tuk0z
    tuk0z over 7 years
    Given coteyr and @hurikhan77 recalls above, do you agree Preload is a counter-effective way to help improve perceived speed on older, low RAM (~800 MB free upon startup) desktop boxes. FYI activating Preload on such refurbished boxes will give the kernel virtual memory manager lots of work for little improvment?
  • hurikhan77
    hurikhan77 over 7 years
    @lliseil If that 800 MB are really unallocated RAM, preload may help... But it probably works better with more RAM. And in turn that means: Preload will conflict with memory-hungry applications you may start later. Lowering swappiness may be necessary here which then probably renders preload useless as soon as you are going to use too much RAM.
  • tuk0z
    tuk0z over 7 years
    @hurikhan77 I'll take your advice. Note these are older boxes, eg Athlon 3000-DDR400. We do lower vm.swappiness and vfs_cache_pressure plus set up zswapas a way to prioritize applications and directories listing's reactivity (aka dentry part of the page cache) vs file cache. And yes they got ~910 MB free RAM out of installed 1 GB with fully loaded Moksha desktop and ~770 for XFCE/Plank (heavily tweaked). Apps have been chosen then configured accordingly to keep as light as possible on sparse resources.
  • C.Rogers
    C.Rogers almost 4 years
    Not to mention it's wrong. I have an SSD, and was looking for ways to speed up atom editor start up, since I use it for everything. Preload cut Atom load time to one quarter of what is was before. Which makes sense - It's always going to be faster to fetch from RAM than it is from SSD, (or indeed anything outside of RAM), because even with SSDs you have to load everything into RAM before it's usable by the processor. It's not usable directly from the disk, SSD or not.
  • Lutosław
    Lutosław about 2 years
    "You will only the see the real difference only if you’re reloading applications a LOT". This is not true, after app is loaded and closed then it remains in a warm cache whether you have preload or not. Preload speeds up a cold-start of commonly used apps by loading them at system startup.