Linux GUIs are so slow

Red Squirrel

No Lifer
May 24, 2003
71,335
14,092
126
www.anyf.ca
Compared to windows I find the GUI in windows is insanely slow. Is there anything I can do to speed it up?

For example i just setup a fresh CentOS box and it takes about 5 minutes to log in, while on Windows its near instant. (same machine, this is ESX).
 

mundane

Diamond Member
Jun 7, 2002
5,603
8
81
Are you complaining that the GUI isn't responsive enough, or that there are too many background processes being started when you begin your CentOS session?
 

Red Squirrel

No Lifer
May 24, 2003
71,335
14,092
126
www.anyf.ca
It's just so unresponsive. Anything I do within the GUI. Like opening the terminal takes about a minute. I can shift+alt to another terminal and do stuff at normal speed in plain text, so I know it's not the actual system being slow, it's the GUI. I noticed this in most distros. I think ubuntu is about the only distro that seems somewhat responsive, but not as much as Windows xp. (Vista is another story)
 

Crusty

Lifer
Sep 30, 2001
12,684
2
81
Don't lay the blame on Linux until you are running it on native hardware and NOT in a VE and still have the slowness.

Your problems probably stem from using ESX + VESA driver instead of an accelerated driver.
 

Red Squirrel

No Lifer
May 24, 2003
71,335
14,092
126
www.anyf.ca
Originally posted by: Crusty
Don't lay the blame on Linux until you are running it on native hardware and NOT in a VE and still have the slowness.

Your problems probably stem from using ESX + VESA driver instead of an accelerated driver.

But why would Windows not be affected by this? Even without VMware tools Windows is still responsive the same it would be on a physical box. There must be some kind of setting i can change maybe to speed up the GUI. like when i start a terminal it just sits at "starting terminal" for a super long time until it finally decides to come up. Logging in is by far the worse though as it sits at the loading splash screen for a good 10 minutes. The cpu is hardly even working.
 

Brazen

Diamond Member
Jul 14, 2000
4,259
0
0
These are running under virtual machines? Are there any other virtual machines running on this box? Are the cpu and memory settings the same?

I agree that the only fair comparison would be on bare metal. In my experience though, linux seems to be much more responsive than windows. I typically don't use GUI on anything other than Ubuntu desktops though, so I don't know about CentOS. Also, I know RedHat Enterprise Linux (of which CentOS is a clone) installs a LOT of extra stuff. I can't tell you from memory though how many of those things are services that would be running on bootup, but it may be one thing to consider that your CentOS install could be slower because it is doing a lot more by default than Windows.

Also, VMWare Tools is a must and has a big impact on responsiveness in both systems, in my objective experience.
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
Even without VMware tools Windows is still responsive the same it would be on a physical box

No, it's not. The VESA driver that Windows uses by default in VMware is horribly slow. Once you install the VMware tools you get an accelerated VMware driver that's many magnitudes faster. In fact Linux should be faster by default because the Xorg VMware driver is included with Linux but it's not with Windows.

There must be some kind of setting i can change maybe to speed up the GUI. like when i start a terminal it just sits at "starting terminal" for a super long time until it finally decides to come up. Logging in is by far the worse though as it sits at the loading splash screen for a good 10 minutes. The cpu is hardly even working.

Sounds like you've got another issue instead of (or on top of) the video driver issue, probably DNS or something.
 

iGas

Diamond Member
Feb 7, 2009
6,240
1
0

Try XFCE or other light weight windows managers to see which one fit your needs.

My fav is FXCE, then Gnome.
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
Why would DNS slow down the GUI? Why would I even need network access on that VM? (there is no network access)

Because most of Linux is network capable on some level or another and having DNS lookups fail will slow things down. If you can ping both localhost and the hostname of the machine without any delays then that might not be it, but it's still worth fixing if you plan on having that installation use the network.

If you really want to see where a process is hanging on startup run it through strace and see what syscalls are taking the longest, that usually points you in the right direction as well.
 

n0cmonkey

Elite Member
Jun 10, 2001
42,936
1
0
You have an issue. Using an older Centos I get very quick response from the gui, even in VMWare.
 

Red Squirrel

No Lifer
May 24, 2003
71,335
14,092
126
www.anyf.ca
There is no DNS on that machine. This is just a very base install with SSH. All other ports are blocked. Do I really need DNS access just for a terminal window or a user manager app to load? I don't get why it would be required.

I did not get a chance to read up on strace yet but I'll try it when I get the chance.
 

postmortemIA

Diamond Member
Jul 11, 2006
7,721
40
91
if it takes more than 2 minutes to boot up with any hardware, then it is stuck at some service.
 

Brazen

Diamond Member
Jul 14, 2000
4,259
0
0
Originally posted by: RedSquirrel
There is no DNS on that machine. This is just a very base install with SSH. All other ports are blocked. Do I really need DNS access just for a terminal window or a user manager app to load? I don't get why it would be required.

I did not get a chance to read up on strace yet but I'll try it when I get the chance.

Are you sure you've left all access open to and from the lo interface?
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
Do I really need DNS access just for a terminal window or a user manager app to load? I don't get why it would be required.

IMO DNS should be a very basic requirement. There's no reason not to have it working...
 

n0cmonkey

Elite Member
Jun 10, 2001
42,936
1
0
DNS is a requirement. Plain and simple.

At least make sure your host file isn't screwed up.
 

Crusty

Lifer
Sep 30, 2001
12,684
2
81
Originally posted by: Brazen
Originally posted by: RedSquirrel
There is no DNS on that machine. This is just a very base install with SSH. All other ports are blocked. Do I really need DNS access just for a terminal window or a user manager app to load? I don't get why it would be required.

I did not get a chance to read up on strace yet but I'll try it when I get the chance.

Are you sure you've left all access open to and from the lo interface?

From his thread on iptables no, the only traffic that's ever going to hit this box(assuming they are the same ones in question) is incoming port 22, everything else is blocked.
 

n0cmonkey

Elite Member
Jun 10, 2001
42,936
1
0
Originally posted by: Crusty
From his thread on iptables no, the only traffic that's ever going to hit this box(assuming they are the same ones in question) is incoming port 22, everything else is blocked.

And OpenSSH likes to have DNS. :p
 

Red Squirrel

No Lifer
May 24, 2003
71,335
14,092
126
www.anyf.ca
Originally posted by: n0cmonkey
Originally posted by: Crusty
From his thread on iptables no, the only traffic that's ever going to hit this box(assuming they are the same ones in question) is incoming port 22, everything else is blocked.

And OpenSSH likes to have DNS. :p

Not really, unless you're going by hostname.

But disabling the firewall did speed up the GUI. Still not as fast as Windows, but close. I don't get it, why would a LOCAL activity require DNS? It's like if MS made it so you need internet access to play solitaire. Can I get away with setting up named and just adding localhost to the resolv.conf file? I need this machine to have zero outside access.
 

Crusty

Lifer
Sep 30, 2001
12,684
2
81
/etc/hosts is all you need to provide name resolution for localhost

Your idea is right, but execution is wrong. Your iptables rules are blocking all traffic on all interfaces except for anything incoming port 22. Open up your lo interface to incoming/outgoing.
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
Not really, unless you're going by hostname.

Actually it does, if you don't have working DNS it'll take longer to login as it fails to resolve stuff.

I don't get it, why would a LOCAL activity require DNS? It's like if MS made it so you need internet access to play solitaire

Because there's networking involved in X. If you had an X server installed on Windows and ran an X app locally on the same machine you'd need some networking to work on Windows too.

Can I get away with setting up named and just adding localhost to the resolv.conf file? I need this machine to have zero outside access.

Just setup your hosts file properly and make sure all traffic across the loop back and to/from itself on any network interfaces is allowed.
 

Red Squirrel

No Lifer
May 24, 2003
71,335
14,092
126
www.anyf.ca
What changes do I need to do to the host file? I always had the impression I'd never really needed to touch that unless I want to setup a local host resolution without using DNS.