Thursday, August 11, 2011

Manual 3G Settings for Airtel, Vodafone, Idea, BSNL, Docomo & More

How to configure data network in iOS:

  1. Go to Settings> General> Network.
  2. Under “Network” settings select “Cellular Data Network”.
  3. Add APN (below post).
  4. Leave Username and Password blank.
  5. Done.

iPhone iOS APN

How to configure APN settings in Android:

  1. Go to Menu> Settings> Wireless & networks.
  2. Now select “Mobile networks” and then “Access Point Names”.
  3. Click “Menu” and then “New APN”.
  4. Enter Name and APN (below).
  5. Leave Username, Password and other entries blank.
  6. Save and activate.

Android APN Settings

How to configure APN settings in Symbian:

  1. Go to Menu > Settings > Configurations.
  2. Select Personal Configuration settings > Add.
  3. Fill in Account Name.
  4. Select Access Point Settings > Bearer Settings.
  5. Enter the Access Point Name (APN).
  6. Leave Username and Password blank.
  7. Go back to Personal Configuration menu.
  8. Select the Account Name and click Option and choose Activate.
  9. Done.

Symbian APN Settings

1. BSNL 3G APN Settings

BSNL with license to operate pan India expect for Delhi and Mumbai where MTNL will be in place. Try to set the following APN under mobile phone or data card settings,

Name: Airtel
APN: bsnlnet

  • gprssouth.cellone.in (South Zone)
  • gprsnorth.cellone.in (North Zone)

Leave all other settings blank

Read our detailed BSNL 3G review with bandwidth and transfer speed tests here. For latest BSNL 3G data plans check this link.

BSNL Logo

2. Airtel 3G APN Settings

Bharati Airtel has won 3G spectrum license to operate in Delhi, Mumbai, Andhra Pradesh, Karnataka, Tamil Nadu, Uttar Pradesh (West), Rajasthan, West Bengal, Himachal Pradesh, Bihar, Assam, North East, Jammu & Kashmir. Go to your phones mobile network settings and add a new connection or edit existing network,

To activate send SMS as 3G to 121

Name: Airtel
APN: airtelgprs.com
Leave all other settings blank

Airtel Logo

3. Vodafone 3G APN Settings

Vodafone won spectrum for Delhi, Mumbai, Maharashtra, Gujarat, Tamil Nadu, Kolkata, Haryana, West Bengal and Uttar Pradesh (East).

To activate send SMS ‘ACT 3G’ to 111

Name: Vodafone
APN: www
Leave all other settings blank

Vodafone

4. Tata Docomo 3G APN Settings

Tata Docomo won spectrum licence and is operating in Maharashtra, Gujarat, Karnataka, Kerala, Punjab, Haryana, Uttar Pradesh (West), Rajasthan and Madhya Pradesh. Read our Tata Docomo 3G data review here.

To activate 3G SMS 3Glife to 53333

Name: Tata Docomo
APN: Tata.Docomo.Internet
Leave all other settings blank

Tata Docomo Logo

5. Reliance 3G APN Settings

Reliance Communications has won spectrum in Delhi, Mumbai, Kolkata, Punjab, Rajasthan, Madhya Pradesh, West Bengal, Himachal Pradesh, Bihar, Orissa, Assam, North East, Jammu & Kashmir.

To activate send SMS to 51234 with plan code.

Name: Airtel
APN: rcomnet” or “smarinet”
Leave all other settings blank

Reliance Logo

6. Aircel 3G APN Settings

Aircel has won spectrum license in Andhra Pradesh, Karnataka, Tamil Nadu, Kolkata, Kerala, Punjab, Uttar Pradesh (East), West Bengal, Bihar, Orissa, Assam, North East and Jammu & Kashmir choose 3G network on your handset (UMTS/Dual) to access 3G service Otherwise, you can access portal using same the GPRS connections settings.

To activate send “START 3G” to 121

Name: Airtel
APN: aircelgprs
Leave all other settings blank

Aircel Logo

7. Idea 3G APN Settings

Idea cellular has won spectrum license in Maharashtra, Gujarat, Andhra Pradesh, Kerala, Punjab, Haryana, Uttar Pradesh (E), Uttar Pradesh (W), Madhya Pradesh, Himachal Pradesh, and Jammu & Kashmir.

To activate 3G SMS ACT3G to 12345

Name: Idea
APN: imis
Leave all other settings blank

Idea Logo

8. MTNL 3G APN Settings

To activate MTNL 3G

  • Prepaid : SMS `ACT 3G` to 444
  • Postpaid : Dial 1503

Name: MTNL
APN: “pps3g” (prepaid) and “mtnl3g” (postpaid).
Leave all other settings blank

MTNL Logo

If you enjoyed reading this post why not spread the information by sharing on Twitter and Facebook.

Thursday, August 4, 2011

Install VMware 7 on Ubuntu 11.04

Instructions

Download VMware Workstation v7.1.4 for Linux. VMware does requires you to register with them before you can begin the download. The program is free for personal use with limited capabilities. You can only create virtual machines with it. To play them you need a separate software called VMware Player which is free as well and comes with WMware Workstation but it is not integrated with it.

Note: To download it you must right click on the download link and then click on “Save Link As“. If you do not do this, your browser will download a small partial file which will give you an error during installation (This happens at least in Firefox; I did not try it on any other browser).

Once downloaded, open the terminal screen, enter the directory containing the downloaded file and execute the following command (this is for the 32 bit full version, change the name of your file accordingly):

sudo sh VMware-Workstation-Full-7.1.4-385536.i386.bundle

Installation Wizard

Follow the wizard. All of the selections I made are optional. I’ll omit the explanation for some of these since they are mostly self explanatory. It is up to you if you want to change anything.

Eclipse is a multi language software development environment. Unless you plan to develop applications for VMware you can leave this blank and click “Next” to continue.

Again, this feature will be used only if you plan to do some programming. Click “Next” to continue.

Leave the default, and continue.

And that’s it!, Simple right? compared to the pain other versions of VMware have made us go through, sometimes even making us use third party unsupported patches for the installation to work. This latest installation was certainly awaited and welcomed.

Sunday, July 3, 2011

Some important commands in linux

ps

This command is used to check the process running on the server. " ps " command will list all the running process with there respective process ID.



Example:

root@server [~]$ ps

PID TTY TIME CMD

22438 pts/3 00:00:00 su

22439 pts/3 00:00:00 bash

22517 pts/3 00:00:00 ps



Use the following option to get more process information from the " ps " commands,

root@server [~]$ ps -aux



Also you can grep any particular process on the server.

root@server [~]$ ps -aux | grep exim



pstree

This command is also used the check the process on the server. " pstree " command will list all the running process in the form of a tree structure.



Example:

root@server [~]$ pstree

init─┬─agetty

├─antirelayd

├─bdflush

├─chkservd

├─4*[courierlogger───couriertcpd]

├─courierlogger───authdaemond───5*[authdaemond───authProg]

├─cpanellogd

├─cpdavd

├─cphulkd.pl

├─cpsrvd-ssl───cpsrvd-ssl

├─crond

├─entropychat

├─exim───exim─┬─3*[exim]

│ └─spamc

├─2*[exim]

├─exim───20*[exim]

├─eximstats

├─hpt_wt

├─httpd───56*[httpd]

├─interchange

├─keventd

├─7*[kjournald]

├─klogd

├─ksoftirqd_CPU0

├─ksoftirqd_CPU1

├─ksoftirqd_CPU2

├─ksoftirqd_CPU3

├─kswapd

├─kupdated

├─mailmanctl───8*[python2.4]

├─mdrecoveryd

├─6*[mingetty]

├─mysqld_safe───mysqld───mysqld───26*[mysqld]

├─named───named───6*[named]

├─portsentry

├─pure-authd

├─pure-ftpd

├─10*[python2.4]

├─scsi_eh_0

├─spamd───2*[spamd]

├─ssh

├─sshd─┬─sshd───sshd───bash───su───bash

│ └─sshd───sshd───bash───su───bash───pstree

├─syslogd

└─xinetd



Also try the following options for " pstree ".

root@server [~]$ pstree -p

init(1)─┬─agetty(7480)

├─antirelayd(8658)

├─bdflush(8)

├─chkservd(6224)

├─courierlogger(6833)───couriertcpd(6834)

├─courierlogger(6840)───couriertcpd(6841)

├─courierlogger(6846)───couriertcpd(6847)

├─courierlogger(6852)───couriertcpd(6853)

├─courierlogger(6858)───authdaemond(6859)─┬─authdaemond(6873)

│ ├─authdaemond(6874)───authProg(26164)

│ ├─authdaemond(6875)───authProg(17488)

│ ├─authdaemond(6876)───authProg(8194)

│ └─authdaemond(6877)───authProg(29956)





Load on a server [ top, w , uptime ]

top

This command is used to find the load on the server. " top " command can also be used to find the process and users that causes load on the server. It gives information about the total process, sleeping process, the zombie process etc.

Example:

root@server [~]$ top -cd3

11:32:03 up 15 days, 23:57, 2 users, load average: 4.95, 5.13, 5.94

220 processes: 219 sleeping, 1 running, 0 zombie, 0 stopped

CPU states: cpu user nice system irq softirq iowait idle

total 1.5% 1.6% 2.4% 0.0% 0.0% 0.0% 94.3%

cpu00 3.4% 2.8% 2.8% 0.0% 0.0% 0.0% 90.9%

cpu01 0.3% 3.1% 0.0% 0.0% 0.0% 0.0% 96.5%

cpu02 2.5% 0.3% 6.5% 0.0% 0.0% 0.0% 90.6%

cpu03 0.0% 0.3% 0.3% 0.0% 0.0% 0.0% 99.3%

Mem: 3104932k av, 2909432k used, 195500k free, 0k shrd, 284548k buff

1201588k active, 1558304k inactive

Swap: 3004112k av, 499936k used, 2504176k free 1015264k cached

PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME CPU COMMAND

3754 root 16 0 1252 1252 896 R 1.4 0.0 0:01 2 top -cd3

3620 nobody 9 0 61460 45M 28768 S 0.6 1.4 2:23 0 /usr/local/apache/bin/httpd -DSSL

3604 mailnull 9 0 4204 4116 2816 S 0.2 0.1 0:00 0 /usr/sbin/exim -bd -q60m

29956 root 9 0 4684 3384 2640 S 0.1 0.1 0:31 0 /etc/authlib/authProg

1 root 8 0 468 440 416 S 0.0 0.0 0:34 2 init [3]

From the above example you can see the load average, total processes, sleeping processes and the CPU usage. You can find the load average ( here the load average is " 4.95 " ), the memory usage, stats, swap and the list of process and its users.

w

This command is also find the load and users on the server. " w " command will provide a brief description about the load, time, number of users and the uptime of the server.

Example:

root@server [~]$ w

11:39:18 up 16 days, 4 min, 2 users, load average: 5.33, 5.37, 5.74

USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT

user1 pts/0 user - ip1 8:26am 3:13m 0.09s 0.00s sshd: user1 [priv]

user2 pts/3 user - ip2 11:09am 0.00s 0.13s 0.02s sshd: user2 [priv]

uptime

This command gives the basic information about the uptime and load of the server.

Example:

root@server [~]$ uptime

11:42:52 up 16 days, 8 min, 2 users, load average: 4.91, 5.35, 5.67

From the above example you can find the load and the number of days server running with out failure etc..

Killing process on a server [ kill, pkill, killall -9 ]

kill

This command is used to kill a running process on the server. You need to process id to execute the kill command. Consider you run " pstree -p " which will list all the process with its respective process id. To kill a particular process use the command " kill ".

Example:

root@server [~]$ kill 27209

or

root@server [~]$ kill -9 27209

The above command will kill the process id 27209.

pkill

This command will kill the child processes of a particular process. Consider you want kill httpd on the server.

Example:

root@server [~]$ pkill httpd

or

root@server [~]$ pkill -9 httpd

or

root@server [~]$ pkill -HUP httpd

The above command will only kill all the child process of " httpd ". Using this command the parent process will be running and all the child process will be killed.

killall

This command is used to kill all the processes ( parent process and child process ).

Example:

root@server [~]$ killall -9 httpd





Checking the number of connection's to the server [ netstat, mysqladmin processlist ]

netstat

This command is used to find the number of connections to the server. " netstat " command will list all the connections using httpd, exim, ftp etc. You can grep the needed port and find the number of connections to a particular port. You can find the Local Address, Foreign Address, State, port etc of all the connections.

Example:

root@server [~]$ netstat -plan

or

root@server [~]$ netstat -plan | grep ":80"

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 15496/httpd

tcp 0 0 65.254.34.21:80 165.21.14.92:42469 SYN_RECV -

tcp 0 0 65.254.34.21:80 71.7.8.253:3922 SYN_RECV -

tcp 0 0 65.254.34.21:80 165.21.154.10:28343 SYN_RECV -

tcp 0 0 65.254.34.21:80 85.100.25.208:2157 TIME_WAIT -

mysqladmin processlist

This command is used to find the connections to the mysql database. It gives information about Id, User, Host, db, Command, Time, State and Info of a mysql request to the server.

Example:

root@server [~]$ mysqladmin processlist

+--------+-----------------+-----------+-----------------------------+---------+-------+-------+

| Id | User | Host | db | Command | Time | State | Info |

+--------+-----------------+-----------+-----------------------------+---------+-------+-------+

| 186678 | mfjengin_shops | localhost | mfjengin_rapid | Sleep | 28337 | | |

| 188706 | mfjengin_shops | localhost | mfjengin_rapid | Sleep | 27051 | | |

| 195090 | kronosho_usifu | localhost | kroho_sifu | Sleep | 23069 | | |

| 201227 | mfjengin_shops | localhost | mfjengin_rapid | Sleep | 19655 | |

Blocking IP [ apf, csf ]

APF and CSF are firewall software’s.

You can use these commands to block a particular IP from connecting to the server. This command is mainly used when you find too many connections from a particular IP. Normally too many connection might be a attack to the server. So it is important to block such IP before it interrupts the balance of the server.

Check which firewall is installed on your server and use it accordingly.

Example:

root@server [~]$ apf -d

or

root@server [~]$ csf -d

Checking the port if open or not [ telnet, nmap ]

telnet

TELNET (TELecommunication NETwork) is a network protocol used on the Internet. TELNET is a client-server protocol, based on a reliable connection-oriented transport. This command will help us to find if a particular port on the server is open or not.

Example:

root@server [~]$ telnet google.com 80

Trying 64.233.187.99...

Connected to google.com (64.233.187.99)

From the above example you could find that port 80 is open on google server. If we receive a " connection refused " signal, that mean's the particular port is not open on the server.

nmap

This command nmap is a Network exploration tool and a security scanner.

Installing software’s [ yum ]

yum

This command is used to install software’s to the server without any dependences.

Example:

yum install

If you find any software’s missing on the server, you can directly install it using this yum command. It will install the particular software on the server without dependencies.

Thursday, June 30, 2011

Download YouTube videos in Linux using youtube-dl

Step 1: Download youtube-install script

Step 2: Run the script as root (sudo ./youtube-install.sh)

Step 3: Now use the command given below

youtube-dl URL (where URL is your YouTube video URL)

How to insall adobe flash player in RHEL 6?

Step 1: Download the Adobe Flash Player (32 bit/ 64 bit) fromhttp://get.adobe.com/flashplayer/ and install it.

Step 2: Download the Flash Player Plugin (flashplayer10_2_p3_64bit_linux_111710.tar.gz) from (http://labs.adobe.com/downloads/flashplayer10_square.html) [Note: This is for 64 bit machine]

Step 3: Extract the (flashplayer10_2_p3_64bit_linux_111710.tar.gz) there will be a file named as (libflashplayer.so) right click on this file and select the copy option.

Step 4: Go to the Home Folder (Top most pane-> Places->Home Folder)

Step 5: Press CTRL+H (to see hidden files)

Step 6: There will be folder named as .mozilla open this folder and make a folder named as plugins (skip if the folder is already there)

Step 7: Go to the plugins folder and right click to paste the file which you have copied (libflashplayer.so)

Step 8: Restart your web browser if it is open (ofcourse it is since you're reading my post online ;-))

Step 9: Go to www.youtube.com and voila!! your flash player is working :D
Enjoy flash videos folks, good day! :-)

How to install Google Chrome in RHEL 6 or in Fedora 14/15?

I have just installed RHEL 6 on my laptop. Now since Google chrome has been my all time favorite web browser and it now supports linux also so I wanted to install it in RHEL 6. Now I am going to tell you the procedure which I followed to install it:

Step 1: Go to the yum.repos.d and then make a file named as google.repo (You can choose any name) Here are the commands.

vi /etc/yum.repos.d/google.repo

then in the file write which is given below (for both 32bit and 64 bit).

[google] name=Google - i386 baseurl=http://dl.google.com/linux/rpm/stable/i386 enabled=1 gpgcheck=1 gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub
 
[google64] name=Google - x86_64 baseurl=http://dl.google.com/linux/rpm/stable/x86_64 enabled=1 gpgcheck=1 gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub

Save the file using wq!

Step 2: Now to install the stable version use this command
## Install Google Chrome Stable version ## yum install google-chrome-stable

To install the beta version use this command
## Install Google Chrome Beta version ## yum install google-chrome-beta

To install the unstable version use this command
## Install Google Chrome Unstable version ## yum install google-chrome-unstable 


It will start downloading :-))

RHCE 6:- First impressions from a sysadmin's point of view

In a previous article, I described a KVM installation of the new RHEL 6 distro. Now that RHEL 6 is running, let's see how it is different under the hood from its predecessor RHEL 5. This was a good (fast and inexpensive) way for all of you to give it a go. In this article, I actually draw conclusions after performing a physical bare metal installation of RHEL 6 on a Dell PowerEdge 1950 server.

The very first impression I got by booting the system is a familiar conservative GNOME 2.28 theme. It works, but it shows its age when compared to the most recent 2.32 GNOME version of its Fedora 14 cousin. The same can be said for the KDE environment: RHEL 6 is at KDE 4.3.0, miles away from KDE 4.5.3. Frankly, if you really want the latest and the greatest on your desktop/laptop, head for the Fedora distro and leave RHEL for your server silicon.

Nevertheless, RHEL 6 does have some desktop improvements over RHEL 5. In summary, it includes support for Kernel Mode Setting (KMS), DR12, OpenGL 3D. The nouveau driver is there, and this means that you are more likely to get a more decent display (my Dell Precision 490 and E6410s did wearing Nvidia gear, although your mileage might vary, depending on your hardware).

On the scripting front-end, Perl has moved to version 5.10.1 (RHEL 5.5 is still on the archaic 5.8.8) and Python is on 2.6.5 (5 was on 2.4.3). For Python funs, there is nothing in the official RHEL repository for Python 3, however, I would expect that in the near future, the EPEL repository and/or the IUS Community Project will package something suitable. An improvement on standard utilities like grep is noticeable (RHEL 6 is on version 2.6.3, whereas RHEL 5 used the ancient 2.5.1). It still beats me why a major commercial distribution (5) still uses 2.5.1. Grep 2.5.1 is so buggy and untrustworthy that I am very surprised why somebody has not screamed at the RedHat release engineers to push an upgrade for something as vital as grep! I understand it is good to be conservative, but not to that extent!

At the heart of the operating system runs a 2.6.32 kernel (2.6.32-71.7.1.el6.x86_64 is the RHEL 6 version at the time I am writing this article), with back-ported features and fixes from the 2.6.33 and 2.6.34 vanilla/mainline source kernel versions. There is a big scalability metric change over the 2.6.18 based kernels in a number of different areas, as shown on the table below.




The big increase in the number of supported CPUs shows a shift of the RedHat development team towards NUMA architectures. With multi-core processors raising the limit every year, suddenly 192 CPU systems are within the range of many mid-range shops and the trend will continue in the future. The same can be said for "fat RAM" nodes, a popular choice for speedy RDBMS and science number crunching platforms. Ticketed-spinlocks, Read-Copy-Update (RCU), and Transparent Huge Pages are some of the techniques the RHEL kernel employs to drive the scalability for CPU and RAM to these levels.

In my honest opinion, the greatest problem in terms of RHEL scalability lies in the area of filesystems. The inadequate 16 TB of the officially supported ext3 of RHEL 5 is now raised to 100 TB in RHEL 6, by means of providing the option of officially supported XFS. RHEL 6's (and RHEL 5.6's) ext4 is still on 16 Tbytes and the only thing it provides is slightly better performance and much improved fsck times.

I was always curious to do a head to head comparison between ext3 and ext4 on the same OS platform, so I fired up a RHEL 6 test node on a Dell PowerEdge 1950 with 8 cores and 16 GB of RAM and setup a RAID 50 (21 x SATA 1Tb) 12 TB partition on hardware RAID controller. Using iozone I provide the comparative results of writing a 32 Gig file (2 x size of RAM) on that 12 TB partition.


The results indicate that ext4 is not such a big improvement over ext3. However, when I mungle some inodes and bring the fs into an inconsistent state to simulate an fs failure, fsck-ing the ext3 filesystem takes me 2.5 hours, whereas doing the same on the ext4 restores the same filesystem in just under 14 minutes! That's a big difference, so for all of you that run multi-TB ext based fs-es in production environments, ext4 is a big plus only for that reason.

XFS is a much more scalable filesystem that ext4. The latter is clearly a marginally better performing filesystem than ext3 and is a temporary step to the roadmap for a more scalable next generation solution. My view is that RedHat is moving to the right direction, but it needs a lot more than the 100 TB it currently supports on XFS, to get a good slice of the Enteprise storage market. Just think of all of these people that run their Netapps/ Panasas solutions or all the folk that really love their ZFS on Solaris. The market is there, RedHat has the experties and it should address the problem really soon. My comment addresses also the clustered filesystem area, where GFS2 is traditionally employed by RedHat. Apart from minor differences in RHEL6 GFS2 bundling, I read no substantial improvements in that area.

Moving on to a more realistic workload comparison between RHEL 5 on ext3 and RHEL 6 on ext4, I could not think of a better example than a heavy duty RDBMS task. Thus, I utilized a MySQL 5.1.50 server on RHEL 5.5 box (2.6.18-194.26.1.el5) to perform a heavy duty task on the 12 TB partition (booting from two sets of identical system disks, in order to switch between RHEL 5 and 6). The workload comes from the field of bioinformatics. The task had 3 steps:

  • Step 1: Unzipping the entire EMBL release 105 nucleotide database. The release consists of 105 .gz compressed files of total size approximating 138 GB. A small Perl script that forks 8 instances (1 for each available processing core) unzips each one of the 105 files in sequence, without saturating the SATA I/O controller. The end result is just under 1 TB of disk space with all the files uncompressed.
  • Step 2: A second Perl parsing script utilizes the DBI interface and theDBD::mysql driver to read all the entries to an InnoDB MySQL table. That's right, the whole lot of 194 million entries are going into a single InnoDB table.
  • Step 3: A text index is created on certain columns of the InnoDB MySQL table that concern the feature table of the sequence database. This is mainly a processor/memory intensive task.
The above tests were performed by using the deadline I/O scheduler:

echo "deadline" > /sys/block/[your_block-disk_identifier_here]/queue/scheduler)

This ensures an overall low latency for I/O tasks which can yield notable performance differences over the default cfq scheduler. The results of this benchmark are given below and they show substantial improvements in RHEL 6.



In total, RHEL 5 took 36.3 hours to complete the workload. In contrast, RHEL 6 reduced the time of completion to 29.1 hours, a staggering difference. The greatest difference can be attributed to the last step (MySQL creation stage). Step 2 is in the middle, mainly due to the difference in Perl versions and drivers (5.8.8 in RHEL 5 versus 5.10.1 in RHEL 6).

An additional area where I normally look into when I benchmark systems is that of network device and protocol performance. In my production environment, I have to use NFS heavily. This is a mixed blessing, as NFS was, is and will be a grey area, when it comes to tuning and performance but on the other hand, it is one cheap and easy way to distribute large data sets into a moderate amount of nodes. RHEL 6 introduces two major differences in this area:

  • Default use of NFS v4: Amongst RHEL 6 boxes, the default NFS protocol version is v4. RHEL 5 used v3 by default. I am not going to write on essay on NFS v4 features, I am sure most of you know your NFS or can look it up yourselves. The great difference here is that you now have solid IPv6 and encryption support for NFS v4, as well as the ability to combine it with FS-Cache. This latter feature can increase the performance in some data distributions scenarios.
  • Kernel networking enhancements: These include improved drivers for FCoE (Fiber Channel over Ethernet) and RDMA support over 10 G Ethernet (RoCE) and Infiniband for low latency networking.
In order to place some of these features to the test, I have setup a small computer cluster of three RHEL 6 clients (8 x core clients) to talk to a single RHEL 6 NFS server over NFS v4. The interconnect was a 10G link point-to-point connections, using Intel Corporation 82598EB 10-Gigabit AF Dual Port Network Connection adapters. An FS-Cache setup was employed to read-only access 551 files of 105 GB. The files were data sets for the NCBI Blast database utility, a popular tool for life scientists. Under RHEL 5, I used to NFS v3 mount them as read-only to the client nodes. Lots of sysadmins rsync those files to local client disks for better performance. This is also my normal practice , however, here I want to test the two different NFS version scenarios: NFS v3 without FS-Cache in RHEL 5 versus NFS v4 with FS-Cache in RHEL 6.

The results were a bit strange. At the beginning, when I actually had one or two clients accessing the NFS imported data in RHEL 6, things were substantially slower with FS-Cache than the RHEL 5 scenario. However, after rebooting to clear any previous cache effects, as soon as I started hitting the NFS imported data with all three clients and launched 5 NCBI Blast jobs on each of them (3x5=15 jobs) simultaneously, things started looking better on RHEL 6. This tells me exactly what the RHEL 6 manual states: FS-Cache and NFS v4 are not performance winners all the time over simple NFS v3, if the client-server traffic is low. However, when you start loading the interconnect, FS-Cache is a good compromise between client reads and network overhead (all these context switches caused by your card).

I am re-looking into this test case, as I want to make sure that I get things right before I post numbers and I will update the blog when I am certain.

That's it for this week. The next article will look into virtualization (KVM) performance, the other big area where RHEL 6 is supposed to give us great benefits.