I had a significant improvement in application start-up times once I switched to CFQ scheduler yesterday. Applications started up real quick and the whole UI became very responsive.
I started with an upgrade to KDE 3.2 on a 2.4.23-ck1, looks nice, had some bugs here and there but didn't do much on performance. Enabling transparency on panels and menus looks good but only at the cost of performance.
I switched to 2.6.2-mm1, had few non-fatal errors but everything worked fine. But I didn't notice a performance gain here.
I switched to NPTL, compiling glibc again. Had the /lib/libc.so.6 error that the other threads here mention about. It didn't do any harm though. I noticed xmms, mozilla-firefox loading with once instance instead of usual many. But again, no big performance boost here.
I read about scheduler options somewhere here and looked for what scheduler I was using from dmesg. Looked like I used anticipatory. I inserted the kernel parameter elevator=cfq and rebooted the box.
Just couldn't believe my eyes, things started responding so fast. I saw some significant improvement in oofice startup times. Everything loads fast and clean!
I haven't noticed a crash untill now! Let's see. Now I wonder, is it just CFQ or the combined effect of 2.6.2+NPTL+KDE-3.2???
I think by latest version you mean from the ~x86 branch? I have latest stable version of glibc. It is still there.
But this whole thing rocks, I was compiling QT yesterday with 100% CPU load, the whole damn system was as responsive as there was nothing going on in the background!
I gotta fine tune the system now to make it more stable and to remove unwanted/unused packages.
with CFQ you create a runqueue for every process (user, or what ever you want to schedule fairly between - default to processes) and add the processes request of IO access to the runqueue - then you round robin between them.
Thus every runqueue has equal access to IO read and write.
With AS the basic idea is to wait a tiny bit after each read operation, so if a process requests data again it will get it at once rather than waiting - the boon is that the program gets it's data without having to wait however if the program doesn't read again the wait period is wasted and add to the latency between request and completion. Write requests are just executed since those normally go directly to the harddisks hardware since that takes care of writing once the disk is idle.
Thus every process has timelimited priority access to Read IO and unlimited write access.
In theory AS should be faster but as it turns out it's extremely hard to predict when to wait and when not to.
CFQ has certain server uses, when you want to limit IO to user groups fx. it's mighty smart technology
Proud to be a 22 year old Infidel, GNOME lover and member of LIK.
Hi guys,
i definetly can confirm that the system is more responsive with any elevator orther than the default anticipatory scheduler. I try NOOP at the moment (which is not really a scheduler, is does merely nothing to schedule) and will give CFQ a try later...
Seems I might give the CFQ scheduler a try. I have been running 2.6.1-mm5 with anticipatory scheduler for about a month, and to me my system has been incredibly responsive. Now that the whole slew of Kde/X/Qt/Firefox/Thunderbird/... updates is finally done here on my humble pIII-500, it's time again to start playing with new kernels
Does CFQ only come with mm/ck patchsets, or is it available too in vanilla 2.6.x?
Btw, 2.6.3 was released today, final 2.6.3-mm series should be in Portage in a few days I suppose. Yay!
I too can confirm switching to the CFQ scheduler has resulted in very noticable improvement. It's like I overclocked my 1700Mhz cpu by an extra 1000Mhz, and went to PC3200 DDR memory on a 400Mhz FSB motherboard. I just did 2.6.3-mm1, with CFQ=y, and it's really the best kernel I've used so far- and I've tested all the versions since 2.5.67, including all mm and ck patches.
Of course this is just how it works on my system, so as usual, YMMV, but I'm not exagerating here- it really does make a difference.
it is my experience that with CFQ the system slows down and/or becomes unresponsive under heavy load. i have switched back to anticipatory scheduler and my machine runs better then it did with CFQ.
venkat wrote:I switched to NPTL, compiling glibc again. Had the /lib/libc.so.6 error that the other threads here mention about. It didn't do any harm though. I noticed xmms, mozilla-firefox loading with once instance instead of usual many. But again, no big performance boost here.
That is just because of the different way the threads are implemented, each thread showed up as a process with LinuxThreads but with NPTL it doesn't show each thread - this isn't anything to do with how many instances are running.
with respect to heavy loads, i was recompiling my whole system (with -j2) with kernel compiling on another console. i still was able to load openoffice reasonably faster and NOTHING changed with respect to responsiveness. i started loving this so much that i am logging into this unstable system (~x86 glibc, kde 3.2, 2.6-mm kernels etc.) more often than my stable 2.4 based partition.
Crg wrote:That is just because of the different way the threads are implemented, each thread showed up as a process with LinuxThreads but with NPTL it doesn't show each thread - this isn't anything to do with how many instances are running.
thx for the clarification Crg, i understood the concept before, but just wanted to emphasize the fact that though i had that error with libc the system was using nptl (that reflects in the thread handling)