I am not going to focus on certain details such as the performance, architecture, support and so on. I only want to talk about those simple things that, when I finish the installation of an operating system, I usually say: I like it!
For my tests, I am going to use two similar versions: Ubuntu Server 10.04 LTS and CentOS 6.0, both 32 bits. After the initial installation (and their corresponding upgrades), here you are a typical view of the system status. As you can distinguish, Ubuntu Server grabs little memory, since the most of it is cached. In respect of the number of active processes, it also has got fewer than CentOS.
root@ubuntu-server:~# top
top - 12:17:54 up 13 min, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 78 total, 1 running, 77 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 2061260k total, 126644k used, 1934616k free, 17088k buffers
Swap: 565240k total, 0k used, 565240k free, 87796k cached
...
[root@centos ~]# top
top - 12:17:49 up 13 min, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 84 total, 1 running, 83 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 2071620k total, 99020k used, 1972600k free, 5272k buffers
Swap: 4161528k total, 0k used, 4161528k free, 29488k cached
...
What about the initial space taken up for the installation? (In order to get a more accurate result, I have cleaned the package cache). As you can see, CentOS occupies around 225 MB less than Ubuntu Server. I have to highlight this point, because this aspect has improved a lot on CentOS 6.0, since we have now a version of minimal installation. With CentOS 5, the final size was bigger.
root@ubuntu-server:~# aptitude clean
root@ubuntu-server:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/ubuntu--server-root
12G 888M 9.6G 9% /
none 1002M 172K 1002M 1% /dev
none 1007M 0 1007M 0% /dev/shm
none 1007M 32K 1007M 1% /var/run
none 1007M 0 1007M 0% /var/lock
none 1007M 0 1007M 0% /lib/init/rw
/dev/sda1 228M 31M 185M 15% /boot
[root@centos ~]# yum clean all
[root@centos ~]# df -h
S.ficheros Size Used Avail Use% Montado en
/dev/mapper/vg_centos-lv_root
7,5G 664M 6,4G 10% /
tmpfs 1012M 0 1012M 0% /dev/shm
/dev/sda1 485M 56M 404M 13% /boot
This situation is reflected as well when we take a look at the number of packages installed on the system.
root@ubuntu-server:~# dpkg -l | grep ii | wc -l
358
[root@centos ~]# yum list installed | wc -l
234
Let's move on to the services which are listening on the system at the beginning. You may appreciate that the picture of Ubuntu Server is impeccable. There is no process bound to any port (aside from SSH). But what happens with CentOS? There are different applications which have already been started up (TCP and UDP). This is a waste of time for me, because at the end of each CentOS installation, I have to remove them.
root@ubuntu-server:~# netstat -nltup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 810/sshd
tcp6 0 0 :::22 :::* LISTEN 810/sshd
[root@centos ~]# netstat -nltup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1071/rpcbind
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1191/sshd
tcp 0 0 0.0.0.0:44568 0.0.0.0:* LISTEN 1089/rpc.statd
tcp 0 0 :::111 :::* LISTEN 1071/rpcbind
tcp 0 0 :::55445 :::* LISTEN 1089/rpc.statd
tcp 0 0 :::22 :::* LISTEN 1191/sshd
udp 0 0 0.0.0.0:822 0.0.0.0:* 1071/rpcbind
udp 0 0 0.0.0.0:841 0.0.0.0:* 1089/rpc.statd
udp 0 0 0.0.0.0:45143 0.0.0.0:* 1089/rpc.statd
udp 0 0 0.0.0.0:111 0.0.0.0:* 1071/rpcbind
udp 0 0 :::822 :::* 1071/rpcbind
udp 0 0 :::43338 :::* 1089/rpc.statd
udp 0 0 :::111 :::* 1071/rpcbind
Regarding the repositories provided for each distribution, Ubuntu Server supplies a larger number of packages than CentOS, and this is another plus. Although you can add excelent additional repositories such as EPEL, those extra packages are not officialy supported.
root@ubuntu-server:~# apt-cache stats | grep Normal
Normal packages: 30299
[root@centos ~]# yum list all | wc -l
4595
Also point out the life cycle of each distribution. On Ubuntu Server you have got a LTS (Long Term Support) version each three years. In contrast, on CentOS, the first release of the branch 5 was shipped in March 2007 and CentOS 6.0, in July 2011 (more than four years after). What goes on with this? Over time, you have to use an operating system where the most of the packages, although still supported, are obsoleted.
And finally, I have metered the time spent in order to reboot the system (both use Upstart). This parameter is really important, mainly in production environments. I have obtained 20 seconds on Ubuntu Server and 40 on CentOS.
Nice article, i have switched from centos to ubuntu server too
ReplyDeleteGood points, I appreciate this info as I evaluate future OS plans for my servers.
ReplyDeleteIn addition, tomorrow April 26 Ubuntu Server 12.04 LTS will be shipped.
Delete