Friday, April 15, 2011

Passed 1/5 RHCA: EX442 System Monitoring and Performance Tuning

I passed the first exam,EX442 System Monitoring and Performance Tuning,in my road to RHCA (Red Hat Certified Architect) today.
Here are some tips I can share, I think, without violating confidential agreement.
Document Source.
EX442 is very heavy on theory, you simply can't remember every bit ( and  its different unit: kb,byte,sector, block, bit,million secs, secs). The key is to  get them in the system documents without Googling.
#Man pages e.g
man 5 proc
#man pages keyword search
$ man -k semget
semget               (2)  - get a semaphore set identifier
semget               (3p)  - get set of XSI semaphores
#man pages full text search
$man -w -K SEMMNI
#/usr/share/doc, full text search
$yum install kernel-doc
$grep -ri isolcpus /usr/share/doc/kernel-doc*/Documentation/.* 
/usr/share/doc/kernel-doc-2.6.18/Documentation/kernel-parameters.txt:   isolcpus=       [KNL,SMP] Isolate CPUs from the general scheduler.
#Other documentations in html/pdf/info/ps format
$rpm -ql valgrind | grep /usr/share
$elinks /usr/share/doc/valgrind-3.5.0/html/index.html
Make the change persistent
#always put the change in configuration file first, then run the command to activate the change 
- Startup service: chkconfig svc-name on; service svc-name start
- User auto start script: edit /etc/rc.local;  execute “/etc/rc.local”
- Kernel Parameter: edit /etc/sysctl.conf; execute “sysctl -p
- File system: edit /etc/fstab ; mount -a
- Kernel modules: edit /etc/sysconfig/modules/XXX.modules;   execute  “/etc/sysconfig/modules/XXX.modules”
#You got to know how to use bc.
#Always start with bc with “-l” option to support floating  point.
#e.g 1Gibit=131072KiByte
$ bc -l
#if there are too many to be added up, you got to use awk
#e.g  sum and average value calculated from 1 to 1000
$ echo {1..1000} | sed "s/ /\n/g" | awk ' {x=$1+x} END {print $1,x,x/NR } '
1000 500500 500.5
#convert  hexadecimal  value  to decimal  
#the hex letter must be in upper case
$echo -e " obase=10 \n ibase=16 \n 0F0" | bc -l
Time is essence, every minute counts, you got to master bash command line.
Check this:
lastly, the Exam day
 - take your RHCE number with you
 - there are a couple of tricky questions, I finished all, I thought I could get 90, but I only got 80. I don't know what went wrong.
 - Unlike RHCE exam, which has 2 sessions with a break for lunch, the EX442  only has 1 morning  session  last for 4 hours
 - Exam result will be emailed in 2 business days, but I got mine in 2 hours.

My Blog posts for EX442 study notes
Load kernel modules at boot time on Redhat/Centos Linux.
Tune Interrupt and Process CPU affinity
Understanding Linux CPU scheduling priority
Setup SNMP V3 USM with encryption.


  1. some units can be in bits, bytes, kilobytes, when it comes to kilobytes is it 1000, or 1024? when it comes to memory is it in bytes or memory pages?

  2. the expression with "i" is 1024.
    Kb=1000 bytes; Kib=1024 bytes.
    I think only vendors use 1000 as unit e.g 80GB hard disk, everything in OS is 1024.

    The unit of memory varies, that why you need to familiar with the system documents. e.g
    net.ipv4.tcp_mem is in pages
    net.ipv4.tcp_rmem is in bytes

  3. Hi,


    I would like to schedule the exam but have a question that I do not belive would violate the confidentiality agreement. I have been searching all of RedHat's website and catalogs for what version(s) of RHEL the EX442 assumes/expects without luck. Can you comment if it is version 5, 6 or both?

    From the course objectives, it seems like much of the material should apply to any version but I hate making assumptions. Like you said in your post, it's important to understand all the concepts, know all the tools and aides, and be able to find information you need quickly.

    Thanks much!

  4. @mkultra
    It is RHEL 5.x (the exact release don't matter), It will take Red hat long time to prepare RHEL 6 course materials

  5. thanks honglus. very nice blog. :)

  6. just a quick note for anyone stumbling on this page. i spoke with a rep from Red Hat training yesterday and he informed me that they are now testing on RHEL6 (specifically 6.2)

  7. Hello ,

    I faced the RHEL performance tuning examination for the first time and your blog , your tips helped me a lot , many thanks :-) . Unfortunately I did my exam on RHEL7 and there were some questions which i wasn't sure to answer such as :

    Que : Display the message "Unable to run program" when program "prog1" is run , display "Successful" when "prog2" is run

    What I did was i put an alias in .bashrc so that when prog1 is run it echoes the above message and did the same for prog2 as well . I am not entirely sure whether this is the answer . Could you please let me know any other suggestions ? Or is there anyway I could manipulate the actual program of the above 2 commands (prog1 and prog2) ?

    Thanks & Regards
    Roshane Ishara Fernando

    1. Hi,
      Alias would not work since it will not accept arguments. You could use a function (inside /etc/bashrc) or make an script, place it in /usr/bin or similar, and make it executable.

  8. Your blog is much effective and thanks for sharing information.. Here we are providing training & materilas and dumps for those who are preparing for cca 175 spark and hadoop developer certification exam and in the related fields of cloudera hadoop developer certification exam.
    cca 175 certification
    cloudera hadoop developer certification