Page 1 of 2

Bloat in Linux

Posted: 2004-06-10 07:24pm
by darthdavid

Posted: 2004-06-10 09:07pm
by SPOOFE
I thought Linux has always booted up slower than MS, balanced out by the fact that there's really no reason to shut down... but whatever...

I don't think it's that big an issue. Software designers would be stupid to not take advantage of better and better technology... less requirement for efficiency.

However, I do see the point about Linux leaving its roots behind... there's no point in a free (or cheap) OS if you need a badass computer to run it.

Posted: 2004-06-10 10:35pm
by Pu-239
Yeah... the mozilla engine is rather bloated, but this is offset by it's better handling of broken pages than Konqueror, and refreshing is nowhere fast as Windows. It's rather annoying that the browser eats up 50% of the cpu cycles on occasion. Synaptic is not usable at all (I use aptitude).

I've found that KDE programs are faster but eat more RAM (which is now OK, since I've now upgraded to 512MB- definately not standard w/ a computer this old).

Posted: 2004-06-11 12:28am
by Uraniun235
Granted, there are some programs which simply need to be the latest version, and as such should have lite versions for those with lightweight computers... but for the most part wouldn't you expect to run older software on older computers? Seems pretty straightforward to me.

Posted: 2004-06-11 12:42am
by Pu-239
Uraniun235 wrote:Granted, there are some programs which simply need to be the latest version, and as such should have lite versions for those with lightweight computers... but for the most part wouldn't you expect to run older software on older computers? Seems pretty straightforward to me.
Maybe one might run Debian stable on these older computers (yes, everything is horribly out of date, but that's the point, and they release backports of security fixes for these older software packages.

Posted: 2004-06-11 01:35am
by Darth Wong
This is nothing more than Linux continuing its tradition of being a marginally acceptable desktop OS and a superior server OS. Even a modern Linux distro still runs great as a server (I once had this board for several months on a crappy 600MHz Celeron running Mandrake, and no one complained about performance), but its desktop GUI responsiveness is poor.

I wonder if his friend's experience with Mandrake 10 would have been better if he installed it lightweight (ie- without all those server daemons that people like to install). I have a spare 600MHz P3 sitting here; maybe I should put MDK10 on it to see how it performs and compare it to the claims I'm hearing about how MDK10 runs like molasses on such a platform.

Posted: 2004-06-11 01:53am
by Pu-239
I don't think unused server daemons have much impact on performance- I'm running Apache2, SSH, Squid, Masqmail, Uptimed (yes, a daemon whose sole purpose is to track and record uptime), Samba, Portmap(needed by FAM which I'm about to remove, since I haven't used a full desktop environment in ages), Ulogd (I don't like my syslog being littered with stuff from IPtables), Spamd (SpamAssassin needed by Evolution 1.5's spam filtering), ACPID, plus the standard stuff like Cron, Syslogd, Klogd, and responsiveness doesn't really improve if non of them are running.

Does Fedora/MDK install and run all these daemons by default?

Posted: 2004-06-11 02:00am
by Praxis
Interesting...
At least on Fedora/Redhat, it's correct.
I installed RedHat Linux 9 on an old Pentium 3 500 mhz (I chose to install it on my least important computer, so I could get some practice partitioning and setting up a dual boot system without the risk of wiping my main computer's HD). I practiced by installing RH9 in Virtual PC 6 on my Mac before actually trying it on the computer- it ran slow as heck, but that's to be expected since I was emulating an x86 processor on an 800 mhz G3 and both the emulator and OS X are optimized for G4's.

After installing RH9 on the P3....it was DEATHLY slow. Hopefully other releases are faster :( Even on my 2.6 GHz P4, RH9 is a lot slower than XP.

Posted: 2004-06-11 02:01am
by Darth Wong
Well, staying in runlevel 3 instead of runlevel 5 (no X) certainly helps performance. And that's what you generally do when you run a server, so Linux is still a great server platform. But it has never been good as a desktop GUI platform.

Posted: 2004-06-11 03:21am
by Pu-239
It's not terribly bad if you trim the bloat properly, and use a distro that doesn't run everything simultaneously by default. I have one of the slowest primary computers of anyone on this board, and Linux runs decently fast (even under GNOME, though I've stopped using full GNOME sessions... the difference between running icewm + whatever or gnome-panel+metacity+whatever is neglible, though GNOME is slightly slower). What's the main problem is poor redraw speeds.

Then again, I rarely use GUI file managers due to poor startup speed, using the console exclusively, using as my only GUI apps Galeon, Gaim, Rhythmbox, and OpenOffice, so Linux apps probably are quite bloated, and I've just adapted.

One thing I've noticed is that Linux apps take up copious amounts of screen real estate. Even at 1280x1024, I feel my screen space is inadequate.
But it has never been good as a desktop GUI platform.
Er... why do you use it as one then?
CPU


Intel 1400MHz Celeron

Motherboard


Asus TUSL2-C i815-chipset ATX board

RAM


384MB PC133 SDRAM

Video


nVidia 64MB GeForce2 440MX
Pinnacle Systems Studio 8.5 video capture card

Monitor


Viewsonic E771 17" SVGA

Sound


Hercules Game Theatre XP

Network card


3Com FastEtherlink XL 10/100Mbps UTP NIC

Hard drive


Maxtor 6Y120L0 7200rpm 120GB ATA drive
Western Digital WD800JB-00CRA1 7200rpm 80GB ATA drive

DVD-R/RW drive


LG Electronics HL-DT-ST GMA-4020B 2x DVD writer

Operating systems


Mandrake Linux 9.2
And what's with all the celeries...???

Posted: 2004-06-11 04:20am
by Spyder
I think the problem is that people expect it to be a microsoft killer. In the server world this is to a large extent true, meanwhile Win2k and XP still dominate the desktop. That being said, I don't think this bloat is anything to worry about, I think that linux developers are trying new things, they're trying to make it into a good desktop OS while keeping it as a good server OS, which for the moment doesn't seem to be working particularly well. All part of the maturation process. Give it a few more years, the people that are trying to make Linux do things that it was never meant to do will either give up or get it right.

If the later happens, it's going to cause a massive shift in the PC food chain. If the former then we're none the worse for ware.

Posted: 2004-06-11 08:22am
by Mad
As I understand it, the reason Linux is slow as a desktop GUI is because Linux doesn't really support shared memory, while Windows does.

Basically, X uses sockets, which has a bit of overhead, to communicate between applications and itself and applications can't simply start up lightweight threads (processes the OS will link together and be able to context switch between quickly and easily, and can communicate through shared memory) they way they can in Windows. So that's two basic problems that arise because of Linux's memory management, both of which cause lots of overhead in an X GUI environment that doesn't exist in the Windows GUI.

Incidentally, that same memory management issue is one of the reasons Linux is so stable: processes can only write in their own memory space, so they can't go and crash other processes by screwing their memory space up. You win some, you lose some.

How to fix it? First, Linux needs some safe way of fast communication between processes. (From skimming my Operating Systems book for the summer term, I think Linux may have made some headway into that, but I'd have to take a closer look to be sure.) That's the first major hurdle. Once that's done, Linux needs a new GUI environment that uses the new, safe but fast communication method. Maybe X and its window managers could be redesigned to support both, so new programs could take advantage while old programs can still work. I don't know how feasable that'd be, but even if it is, I'd imagine it'd still be a huge undertaking. (Then there's the problem that remote X sessions are possible because X uses sockets instead of shared memory to communicate... maybe the processes should make calls to some generic OS communication function that decides whether to use shared memory or sockets...)

But until then, Windows has the speed advantage because it's memory management scheme simply allows it to communicate faster.

Or, maybe I'm completely misunderstanding the book. ;) :P

Posted: 2004-06-11 09:46am
by Darth Wong
Pu-239 wrote:Er... why do you use it as one then?
Because my machines are fairly fast, not old 600MHz boxes as mentioned in the article. So it's not a problem for me. Also, I know how to set it up and use it. Newbies have a much tougher time with it unless somebody else sets it up for them. The installation has gotten a whole lot easier, but there are still lots of things you need to drop to the command-line for.
And what's with all the celeries...???
They're cheap and don't generate much heat load and I've had some unfortunate experiences with VIA chipsets which are common in the AMD world.

Posted: 2004-06-11 11:25am
by Xon
Mad wrote: Incidentally, that same memory management issue is one of the reasons Linux is so stable: processes can only write in their own memory space, so they can't go and crash other processes by screwing their memory space up. You win some, you lose some.
Actually you have confused a few issues.

What you are talking about are memory mapped pages of memory. These are explicit pages which the OS does behind the scene's magic to map a file into memory or an object in memory space. These allow for an application level zero-copy approch to mapping stuff into memory.

Windows processes are in seperate 4 GB logical address space, and can not touch another applications memory, except by explicit means which are guarded by the User permisions(Under Windows NT, not talking about Windows 9x).

Under Windows versions less than 9x (including 3.11) things were unstable because all 16bit applications share the same logical address space
.
Or, maybe I'm completely misunderstanding the book. ;) :P
You missed a few of the subtleties or the book was just wrong.

There are a large number of tricks Windows does to get GUI applications to respond better.

You can notice a difference in apparent preformance just by recompiling an application from linux to Windows. This is due to how Windows does thread management and other tricks.

Posted: 2004-06-11 12:20pm
by Darth Wong
Windows does make great efforts to improve subjective appearance of response time. For example, watch a Windows box boot up. Notice how soon the login prompt comes up, even though the HD is still churning away like mad and it's obviously not done starting up yet. Similarly, watch how quickly it appears to log in, even though (again) the HD is still churning away like mad and it's obviously not finished yet.

Posted: 2004-06-11 12:32pm
by Hamel
Darth Wong wrote:Windows does make great efforts to improve subjective appearance of response time. For example, watch a Windows box boot up. Notice how soon the login prompt comes up, even though the HD is still churning away like mad and it's obviously not done starting up yet. Similarly, watch how quickly it appears to log in, even though (again) the HD is still churning away like mad and it's obviously not finished yet.
To lessen that login time I set cmd.exe as my default "shell" instead of explorer. From there I could load explorer to deek around with the net or other stuff, or I could just run games right from task manager to save a bit of memory. At least it's better than right clicking your desktop as soon as you get the GUI and getting zero response.

Posted: 2004-06-11 01:20pm
by Praxis
Actually, that's a brilliant idea. How do you do that? And can you run games online?

Posted: 2004-06-11 01:33pm
by Hamel
Praxis wrote:Actually, that's a brilliant idea. How do you do that? And can you run games online?
Type 'gpedi.msc' in run~

User configuration
Administrative templates
System

Under system, you'll see 'custom user interface'

Click on enabled radio button, put in cmd.exe, apply, restart~

This won't affect your internet access. When you start up, you'll get a DOS window. Close that out and use task manager to do whatever. It's best to load explorer in the task manager's run program if you want to do most things. I know that running Trillian without explorer is a big no-no, because if a program doesn't minimize to the taskbar, you won't be able to access it without explorer running.

Posted: 2004-06-11 02:56pm
by kojikun
I used to run Mandrake 8 on a 300MHz machine with 92 megs of RAM and it was faster than Windows on a 900MHz machine with 128 megs of RAM. Then again, I never did anything hugely processor intensive, but I did use GIMP occasionally and it was fine. Also, back when I had Windows on the 300MHz machine, I used to be able to run Lightwave 5/6 with no real slowdown, and that program can really junk a system. o.o

Posted: 2004-06-11 04:03pm
by SPOOFE
Similarly, watch how quickly it appears to log in, even though (again) the HD is still churning away like mad and it's obviously not finished yet.
To be fair, it doesn't really do that on a clean XP install. It's only after you've had a chance to accumulate additional programs, patches, Startup options, etc. do they get boot lag... MS is gonna have to dig into fixing that aspect.

Still, however, even with the lag, XP boots up a lot more reliably than 98 or ::shudder:: ME...

Posted: 2004-06-11 05:28pm
by ukamikazu
Pu-239 wrote:I don't think unused server daemons have much impact on performance- I'm running Apache2, SSH, Squid, Masqmail, Uptimed (yes, a daemon whose sole purpose is to track and record uptime), Samba, Portmap(needed by FAM which I'm about to remove, since I haven't used a full desktop environment in ages), Ulogd (I don't like my syslog being littered with stuff from IPtables), Spamd (SpamAssassin needed by Evolution 1.5's spam filtering), ACPID, plus the standard stuff like Cron, Syslogd, Klogd, and responsiveness doesn't really improve if non of them are running.

Does Fedora/MDK install and run all these daemons by default?

Code: Select all

sudo chkconfig --list
Password:
microcode_ctl   0:off   1:off   2:on    3:on    4:on    5:on    6:off
kudzu           0:off   1:off   2:off   3:on    4:on    5:on    6:off
syslog          0:off   1:off   2:on    3:on    4:on    5:on    6:off
netfs           0:off   1:off   2:off   3:on    4:on    5:on    6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
random          0:off   1:off   2:on    3:on    4:on    5:on    6:off
rawdevices      0:off   1:off   2:off   3:on    4:on    5:on    6:off
pcmcia          0:off   1:off   2:on    3:on    4:on    5:on    6:off
saslauthd       0:off   1:off   2:off   3:off   4:off   5:off   6:off
smartd          0:off   1:off   2:on    3:on    4:on    5:on    6:off
apmd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
atd             0:off   1:off   2:off   3:on    4:on    5:on    6:off
gpm             0:off   1:off   2:on    3:on    4:on    5:on    6:off
autofs          0:off   1:off   2:off   3:on    4:on    5:on    6:off
iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off
irda            0:off   1:off   2:off   3:off   4:off   5:off   6:off
nscd            0:off   1:off   2:off   3:off   4:off   5:off   6:off
lisa            0:off   1:off   2:off   3:off   4:off   5:off   6:off
portmap         0:off   1:off   2:off   3:on    4:on    5:on    6:off
nfs             0:off   1:off   2:off   3:off   4:off   5:off   6:off
nfslock         0:off   1:off   2:off   3:on    4:on    5:on    6:off
netplugd        0:off   1:off   2:off   3:off   4:off   5:off   6:off
snmpd           0:off   1:off   2:off   3:off   4:off   5:off   6:off
crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off
anacron         0:off   1:off   2:on    3:on    4:on    5:on    6:off
ypbind          0:off   1:off   2:off   3:off   4:off   5:off   6:off
winbind         0:off   1:off   2:off   3:off   4:off   5:off   6:off
xfs             0:off   1:off   2:on    3:on    4:on    5:on    6:off
xinetd          0:off   1:off   2:off   3:on    4:on    5:on    6:off
cups            0:off   1:off   2:on    3:on    4:on    5:on    6:off
ntpd            0:off   1:off   2:off   3:on    4:off   5:on    6:off
messagebus      0:off   1:off   2:off   3:on    4:on    5:on    6:off
readahead_early 0:off   1:off   2:off   3:off   4:off   5:on    6:off
snmptrapd       0:off   1:off   2:off   3:off   4:off   5:off   6:off
cpuspeed        0:off   1:on    2:on    3:on    4:on    5:on    6:off
irqbalance      0:off   1:off   2:off   3:on    4:on    5:on    6:off
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
readahead       0:off   1:off   2:off   3:off   4:off   5:on    6:off
rpcgssd         0:on    1:off   2:off   3:on    4:off   5:on    6:on
rpcidmapd       0:on    1:off   2:off   3:on    4:off   5:on    6:on
rpcsvcgssd      0:on    1:off   2:off   3:on    4:off   5:on    6:on
xinetd based services:
        chargen-udp:    off
        rsync:  off
        chargen:        off
        daytime-udp:    off
        daytime:        off
        echo-udp:       off
        echo:   off
        services:       off
        time-udp:       off
        time:   off
        ktalk:  off
        cups-lpd:       off
        sgi_fam:        on
To answer your question, sometimes yes, sometimes no and my FC2 setup is mostly vanilla.

Posted: 2004-06-11 08:37pm
by Xon
Darth Wong wrote:Windows does make great efforts to improve subjective appearance of response time.
Especially in the GUI area.

For GUI apps, Windows dynamically fiddles around with the thread priority levels to insure the forground application is consistently snappy by making sure it isnt CPU starved.

Also the minium allocated CPU slice under windows is much lower for GUI applications than it is on Linux. This insures that the applications respond faster by being able to check for events more drequently. The amount of work done isnt the important part, its how fast the computer responds to user input.

Microsoft uses On-Demand/lazy loading as much as posible as it increases the apparent responce time to user input.

However, under the current Windows OS line (excluding longhorn) the kernal doesnt understand that HHD bandwidth more precious than CPU time. Hit the HHD hard from a single thread, and the entire system can become unresponcive to tasks which just touch the hhd.

Longhorn will introduce the concept of Quality of Service for hhd bandwidth, which IMO is long overdue.

Posted: 2004-06-11 10:51pm
by Pu-239
Mad wrote:As I understand it, the reason Linux is slow as a desktop GUI is because Linux doesn't really support shared memory, while Windows does.
WTF? Linux does support shared memory. Read here: http://fscked.org/writings/SHM/shm.html
*snip*
Maybe X and its window managers could be redesigned to support both, so new programs could take advantage while old programs can still work. I don't know how feasable that'd be, but even if it is, I'd imagine it'd still be a huge undertaking. (Then there's the problem that remote X sessions are possible because X uses sockets instead of shared memory to communicate... maybe the processes should make calls to some generic OS communication function that decides whether to use shared memory or sockets...)
The problem is backwards compatibility and hardware manufacturer support- which is the reason why things like DirectFB have not been successful. Hardware manufacturers, notably nVidia, only support X. In the future, X will be extended and modified to be better/faster, but won't be replaced.

Maybe it's possible to modify xlib to not use sockets?
[/quote]

Besides, I don't think X is the problem. I think it's the various GUI toolkits that are.
ggs wrote: For GUI apps, Windows dynamically fiddles around with the thread priority levels to insure the forground application is consistently snappy by making sure it isnt CPU starved.
Yea, I don't think Linux distinguishes much from GUI and other programs. One could renice X to a negative number (for me -10, of of priorities -20 to 20, with -20 being highest (reserved for important stuff like software RAID).

Also, isn't the Windows GUI built into the kernel (among other things like parts of IIS), increasing speed and reducing stability?

As for Fedora and what's running on it... ugh...

Anyone here run the 2.6 kernel? It appears to improve responsiveness substantially.

Anyway, my solution to long startup times? Leave computer and apps running all the time.

Posted: 2004-06-12 02:13am
by Xon
Pu-239 wrote: Yea, I don't think Linux distinguishes much from GUI and other programs. One could renice X to a negative number (for me -10, of of priorities -20 to 20, with -20 being highest (reserved for important stuff like software RAID).
On thing windows does is takes the approch that if it holds a windows hanlde, and that window handle is in use(aka visible), then the user cares about the thread owning that window handle.
Also, isn't the Windows GUI built into the kernel (among other things like parts of IIS), increasing speed and reducing stability?.
There is a slight difference between being in kernel space & being in the kernel. But yes parts of the GDI execute in kernal space, just like video card drivers. But it does mean that if the driver borks, than the machine can be up shitcreak. The GDI stuff is heavily tested just by running a few Microsoft apps, so its very well tested.

I'm more worried about dodgy sound & video card drivers.

But then again, in any OS, if a kernel level driver borks you are in deap shit.

html.sys lives in kernel land too! :lol:

Anyway, my solution to long startup times? Leave computer and apps running all the time.
Same, I only reboot my computer when needed and rarely turn it off.

Posted: 2004-06-12 12:55pm
by Pu-239
ggs wrote:
Pu-239 wrote: Yea, I don't think Linux distinguishes much from GUI and other programs. One could renice X to a negative number (for me -10, of of priorities -20 to 20, with -20 being highest (reserved for important stuff like software RAID).
On thing windows does is takes the approch that if it holds a windows hanlde, and that window handle is in use(aka visible), then the user cares about the thread owning that window handle.
Hm... this probably could be implemented in X, since X runs as root, and could renice apps... Should be trivial, but isn't done... I don't know if it can be done to individual threads though.

html.sys lives in kernel land too! :lol:
:shock: