| |
1355
|
|
|
Written by Ubuwu the 28 Feb 08 at 15:04.
Category: System.
Related to:
Nothing/Others.
Status: New
|
|
|
Description
In todays computer systems the main bottleneck is not CPU but disk access which is several orders of magnitude slower than CPU and memory. In such circumstances the way to improve application performance is to prefetch data it needs from disk before it even requests it and it is the point of prefetching techniques. This speeds up boot and decreases the time needed to start programs. This replaces and it is faster than the currently used readahead.
Tags:
(none)
Attachments
Duplicates
Comments
|
nightman wrote on the 28 Feb 08 at 22:55
|
I will just copy 'n' paste my post from Linux Mint "Sugestions and Ideas" forum (Linux Mint is based on Ubuntu):
Hi, following the new article on Digg.com http://digg.com/linux_unix/Drastically_Speed_up_your_Linux_System_with_Preload I've found out about two fantastic programs that speed up my Linux Mint. It would be fantastic to build it to Linux Mint by default.
Ok, so let's move into details:
First program is "Preload" - check http://www.techthrob.com/tech/preload.php
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.
So it's basically like Vista's SuperFetch but much less RAM consuming. The instalation is simple:
To install it just type in terminal:
Code: Select all
sudo apt-get install preload
And that's it, after day or two it will remember Your most often run programs and will run it faster. Check the diagrams on the website provided above. I can say that it significantly improves some programs startup on my computer. RAM consuming is pretty low as well.
The second program is "Prelink" - check http://en.wikipedia.org/wiki/Prelinking and http://linux.die.net/man/8/prelink
Prelink is a free program written by Jakub Jelinek of Red Hat for POSIX-compliant operating systems, principally Linux (because it modifies ELF executables). It is intended to speed up a system by reducing the time a program needs to begin. Actual results have been mixed, but it seems to aid systems with a large number of libraries, such as KDE.
Most programs require libraries to function. Libraries can be integrated into a program once, by a linker, when it is compiled (static linking) or they can be integrated when the program is run by a loader, (dynamic linking). Dynamic linking has advantages in code size and management, but every time a program is run, the loader needs to find the relevant libraries. Because the libraries can move around in memory, this causes a performance penalty, and the more libraries that need to be resolved, the greater the penalty. prelink reduces this penalty by using the system's dynamic linker to reversibly perform this linking in advance ("prelinking" the executable file) by relocating. Afterward, the program only needs to spend time finding the relevant libraries on being run if, for some reason (perhaps an upgrade), the libraries have changed since being prelinked.
To install it just type in terminal:
Code: Select all
sudo apt-get install prelink
and after the instalation:
Code: Select all
sudo prelink -avmR
It seems to be very nice idea too. What do You think?
|
|
nightman wrote on the 28 Feb 08 at 22:56
|
I will just copy 'n' paste my post from Linux Mint "Sugestions and Ideas" forum (Linux Mint is based on Ubuntu):
Hi, following the new article on Digg.com http://digg.com/linux_unix/Drastically_Speed_up_your_Linux_System_with_Preload I've found out about two fantastic programs that speed up my Linux Mint. It would be fantastic to build it to Linux Mint by default.
Ok, so let's move into details:
First program is "Preload" - check http://www.techthrob.com/tech/preload.php
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.
So it's basically like Vista's SuperFetch but much less RAM consuming. The instalation is simple:
To install it just type in terminal:
Code: Select all
sudo apt-get install preload
And that's it, after day or two it will remember Your most often run programs and will run it faster. Check the diagrams on the website provided above. I can say that it significantly improves some programs startup on my computer. RAM consuming is pretty low as well.
The second program is "Prelink" - check http://en.wikipedia.org/wiki/Prelinking and http://linux.die.net/man/8/prelink
Prelink is a free program written by Jakub Jelinek of Red Hat for POSIX-compliant operating systems, principally Linux (because it modifies ELF executables). It is intended to speed up a system by reducing the time a program needs to begin. Actual results have been mixed, but it seems to aid systems with a large number of libraries, such as KDE.
Most programs require libraries to function. Libraries can be integrated into a program once, by a linker, when it is compiled (static linking) or they can be integrated when the program is run by a loader, (dynamic linking). Dynamic linking has advantages in code size and management, but every time a program is run, the loader needs to find the relevant libraries. Because the libraries can move around in memory, this causes a performance penalty, and the more libraries that need to be resolved, the greater the penalty. prelink reduces this penalty by using the system's dynamic linker to reversibly perform this linking in advance ("prelinking" the executable file) by relocating. Afterward, the program only needs to spend time finding the relevant libraries on being run if, for some reason (perhaps an upgrade), the libraries have changed since being prelinked.
To install it just type in terminal:
Code: Select all
sudo apt-get install prelink
and after the instalation:
Code: Select all
sudo prelink -avmR
It seems to be very nice idea too. What do You think?
|
|
v1ncent wrote on the 29 Feb 08 at 00:02
| |
It seems OK to me, but i would like to see more performance tests.
|
|
lifeless85 wrote on the 29 Feb 08 at 00:26
| |
what about compatibility, real tests on performance, work to be done to make progragms able to use it ?
|
|
gnu_lx wrote on the 29 Feb 08 at 00:32
|
I am not a supporter of prelink since it seems (as I understand it) to change the executable files. It adds a map of the dynamically linked libraries so programs could start faster because this step can be skipped. I can't imagine this having a very big impact on loading times (I tested it a long time ago with gentoo and I couldn't detect any difference), but ofcourse I might be wrong.
preload could be an option, but still since it uses memory it should be easy to turn it on/off, so the user can decide not to use it.
|
|
webjames wrote on the 29 Feb 08 at 00:44
| |
preload is easy to install, and gives a speed increase.
|
|
Ubuwu wrote on the 29 Feb 08 at 00:48
| |
Prefetch is a better solution than prelink or preload, see the linked spec.
|
|
ToyKeeper wrote on the 29 Feb 08 at 02:43
|
If this becomes default in Ubuntu, I request an easy way to turn it off. :)
It's becoming more and more common to suspend/resume instead of rebooting, and leave applications running instead of restarting them. Prefetch gains nothing in these cases, and might even decrease performance (research needed).
Personally, I log out only two or three times per year, and 95% of the programs I run start before I can remove my fingers from their launch hotkeys. So, prefetch is uninteresting to me.
|
|
Ralf.Nieuwenhuijsen wrote on the 29 Feb 08 at 03:55
|
@ToyKeeper you are so lying.
A lot of programs start up with a delay the first time. And if they are faster the second time (openoffice) it is only because they _are_ staying in memory.
This delay is purely IO related. Since we don't package the libraries of programs together, but 'share' them to reduce disk and memory space, the first time you run a program 10-20 files need to be read in memory. These files are often scattered around your harddrive. End-result: a couple of second delay.
Prefetch will not harm your memory at all. This is not the way linux works anyway. What is does is learn that when launching application X, you will be loading file Y (presumbly some library) in about .2 sec. Why not _prefetch_ the file for ya?
Rules of prefetch: 1) only use free-memory. when an app requests more memory, reduce your cache. (which is why its a kernel module) 2) only prefetch when we're not doing anything.
Rule number 2 is extra interesting because it will actually spread the usage of resources. This not only means faster launching applications, but also less power consumption and longer lasting laptop's battery's.
If you are worried about memory usage, turn off trackerd. That's a much bigger beast. And you might also want to make sure that you are not running any python applets (deskbar) either. Turn off nautilus thumbnails. Then those mysterious slowdowns will go away for ever.
|
|
dhonn wrote on the 29 Feb 08 at 07:30
| |
How about pre-loading the binary and libraries when the mouse hovers over the icon? By the time the user clicks the icon most of the libraries should be loaded.
|
|
azrael wrote on the 29 Feb 08 at 09:58
| |
Don't install prelink. Prelink has been dropped in feisty.
|
|
shadowfirebird wrote on the 29 Feb 08 at 14:27
| |
Just so long as I can turn it off!
|
|
upbeat.linux wrote on the 29 Feb 08 at 16:22
|
my experience with prefetch on socket 939 based chipset is exactly the opposite: slower and unstable upon first or second launch. however like Ralf.Nieuwenhuijsen wrote the problem is purely I/O.
most users are going to gripe if they have to wait and extra 2-10 seconds wait for delay upon first launch.
if prefetch is integrated it should be an option in the install. overall, prefetch in fiesty is much quicker than in gutsy.
|
|
Jiran wrote on the 29 Feb 08 at 19:10
|
I agree that, if it becomes default, there should be a way to turn it off. I know that pre-fetching is one of the common complaints about Windows when "after using XP for N months, it's soooo slow to boot!"
That, and the ability to clean out the database of Prefetch. If, for example, you're loaning your computer to someone for 3 months, you would want them to have a blank slate for the prefetch and not have extra resources dedicated to what you use.
|
|
Radon wrote on the 1 Mar 08 at 16:09
|
Preload is stable. It's been part of OpenSuSE for half a year.
However, it hasn't been updated since August 2006 (Sourceforge). Prefetch seems to be the better alternative since it's more dynamic. I also like the e2remapblocks feature that rearranges the boot files closer together to reduce HDD latency.
More testing is needed for file systems other than ext. It's not yet ready for 8.04.
|
|
timfidler wrote on the 4 Mar 08 at 11:46
| |
Just a quick one to say I installed this the other day and I'm really impressed. Things seem to load almost instantly. Superb software and would be a brilliant inclusion. However, I agree that an on/off switch is essential.
|
|
Shrat wrote on the 5 Mar 08 at 19:03
|
Please, we don't need this bloated app. Linux has a great RAM management.
You need this kind of crap when you use Windows.
Preload and prefetch are useless.
|
|
dilomo wrote on the 14 Mar 08 at 17:36
| |
Not so useless when you are using that slowww nautilus.
|
|
adrian2 wrote on the 8 Apr 08 at 08:51
|
We all love Ubuntu, but windows is faster because of prefetch.
Ubuntu needs it!
+1
|
|
BrokeBody wrote on the 16 Apr 08 at 18:39
|
Totally agree! Vista is faster than Ubuntu on a descent piece of hardware.
+1
|
|
The RedBurn wrote on the 30 Apr 08 at 11:42
|
Please use as much memory as possible to preload programs. It's always much faster to empty the memory than load a program from the disk.
This would make Ubuntu more reactive.
|
|
klichota wrote on the 10 May 08 at 11:19
|
Hello everyone.
I am the author of Google Summer of Code 2007 prefetching for Ubuntu.
I did not get any feedback on prefetch project mailing list (or any other way), so I thought it is not used, and did not have motivation to further work on it. And then I have come across this site :)
I will soon be working on adapting my prefetching solution to K/Ubuntu 8.10, so I need as much information about performance, problems, regressions, etc. as possible.
Please send comments about prefetching to mailing list prefetch-users@googlegroups.com (no subscription necessary, just send e-mail) or report bugs on Launchpad project (https://launchpad.net/prefetch/).
TIA
Krzysztof Lichota
|
|
kulight wrote on the 27 Jul 08 at 19:09
|
i agree prefetch should be implemented and installed by default
but it should be simple to turn it off if you want to
|
|
lavinog wrote on the 20 Aug 08 at 21:10
| |
How is this different from the default readahead scripts in ubuntu?
|
Post your comment
|
|