Tuesday, December 9, 2014

Is it possible to "hotplug" a CPU on a running Red Hat Enterprise Linux 5 system?

Issue

  • Is it possible to "hotplug" a CPU on a running Red Hat Enterprise Linux system?
  • How to dynamically enable or disable a CPU on a running system.


Resolution

Red Hat Enterprise Linux 5 supports the cpu-hotplug mechanism, which allows for CPUs to be dynamically disabled and re-enabled on a system without requiring a system reboot.
In order to disable a CPU core in a running machine, use the file /sys/devices/system/cpu/cpuX/online.

The following command will disable a CPU:
    # echo 0 > /sys/devices/system/cpu/cpuX/online
Where X is the ID of the CPU as determined from /proc/cpuinfo.

To re-enable the CPU, run:
   # echo 1 > /sys/devices/system/cpu/cpuX/online

Note: CPU hot-plugging will only work if physical hotplug is supported by the hardware.
Note: There are some architectures in which a CPU cannot be disabled due to a dependency on a certain CPU. In such cases you will notice that the /sys/devices/system/cpu/cpuN/online file is missing or not writeable.

For further details on CPU hotplugging, see this file:
/usr/share/doc/kernel-doc-2.6.18/Documentation/cpu-hotplug.txt
The documentation files are in the kernel-doc package, which can be installed from RHN.

LAUNCH JENKINS AGENT and DISCONNECT JENKINS AGENT using CURL post requests in LINUX / UNIX

WHY do we need this function?
This function helps when you have some changes made to .bashrc or .bash_profile and those changes need to be reloaded and taken into account by jenkins agent.



Bash Function to LAUNCH JENKINS AGENT and DISCONNECT JENKINS AGENT using CURL

function launch-jenkins-agent
{
        SERVERNAME="server00"
        #SERVERNAME="server01"
        echo "usage: launch-jenkins-agent "
        cat $1 | awk '{print "curl --form \"offlineMessage=Restarting_agent_after_P4_changes\" https://${SERVERNAME}/computer/"$1"/launchSlaveAgent "}' |sh -x
}


function disconnect-jenkins-agent
{
        SERVERNAME="server00"
        #SERVERNAME="server01"
        echo "usage: disconnect-jenkins-agent "
        cat $1 | awk '{print "curl --form \"offlineMessage=Restarting_agent_after_P4_changes\" https://${SERVERNAME}/computer/"$1"/launchSlaveAgent "}' |sh -x

}


FUNCTION USAGE:
# disconnect-jenkins-agent  /tmp/multiple-hostnames
# launch-jenkins-agent   /tmp/multiple-hostname



HTTP POST and GET using cURL in Linux

Linux provides a nice little command which makes our lives a lot easier.


GET:

with JSON:
curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET http://hostname/resource

with XML:
curl -H "Accept: application/xml" -H "Content-Type: application/xml" -X GET http://hostname/resource


POST:
For posting data:
curl --data "param1=value1&param2=value2" http://hostname/resource

For file upload:
curl --form "fileupload=@filename.txt" http://hostname/resource

RESTful HTTP Post:
curl -X POST -d @filename http://hostname/resource

For logging into a site (auth):
curl -d "username=admin&password=admin&submit=Login" --dump-header headers http://localhost/Login
curl -L -b headers http://localhost/
 
 
In cases where the webservice responses are in JSON then it might be
 more useful to see the results in a clean JSON format instead of a very
 long string. Just add | grep }| python -mjson.tool  to the end of curl 
commands here is two examples:

GET approach with JSON result
curl -i -H "Accept: application/json" http://someHostName/someEndpoint | grep }| python -mjson.tool
POST approach with JSON result
curl -X POST -H "Accept: Application/json" -H "Content-Type: application/json" http://someHostName/someEndpoint -d '{"id":"IDVALUE","name":"Mike"}' | grep }| python -mjson.tool

enter image description here
 
 

Example:

curl --header "X-MyHeader: 123" www.google.com
You can see the request that curl sent by adding the -v option.
 
 
Ref: http://stackoverflow.com/questions/14978411/http-post-and-get-using-curl-in-linux 

Monday, September 29, 2014

Update the bash history file in real-time immediately

#Add the following 2 lines to #.bashrc file

shopt
-s histappend PROMPT_COMMAND="history -a;$PROMPT_COMMAND"

Thursday, August 28, 2014

SAFARI OS X MAC Corporate Single Sign On using Windows Credentials SSO LDAP Kerberos

Kerberos is built into Mac OS X as well, but isn't as simple to use and configure with Chrome and FireFox as it is with Explorer on a Windows workstation.
You need to do two things before you can use Kerberos for authentication in Chrome/FireFox:

  1. Create a Kerberos ticket with the Ticket Viewer application (/System/Library/CoreServices/Ticket Viewer)  
  2. OR via the command line (kinit username@example.com, then enter your password). See this article for more detailed instructions.

Thursday, August 14, 2014

Research on RPM DROP on AUDI A4 v6 3.0L- Replace PCV valve and Ignition Coil packs

  1. interchange spark plugs with the misfiring ones -
    - recheck the code and notice if the misfire codes move to different cylinder
  2. Interchange Ignition Coil packs
    - Recheck the scan codes if they change and if it moves to different cylinder
  3. A broken PCV valve can also be the reason. (Check the Intake Mainfold Runner Motor)

Forum Discussion here

http://www.audizine.com/forum/showthread.php/479493-Bouncing-RPM-and-Dropping-RPMs-at-stop
The most common ones are:

PCV
Intake Manifold Runner Motor
Fuel Pressure Sensor

Might be missing one.

Just had the first two done a few weeks ago, car is driving better than ever!

DIY Videos


Order here
http://www.autopartswarehouse.com/shop_parts/ignition_coil/audi/a4.html

*- Nirav -*

Wednesday, August 13, 2014

GSmartControl : GUI for smartctl

GSmartControl : GUI for smartctl


GSmartControl is a graphical user interface for Linux smartctl, which is a tool for querying and controlling S.M.A.R.T. (Self-Monitoring, Analysis, and Reporting Technology) data on modern hard disk drives.  You can read about smartctl at : http://unixfoo.blogspot.com/2007/11/disk-information-using-smartctl.html . It allows you to inspect the drive's S.M.A.R.T. data to determine its health, as well as run various tests on it.

GSmartControl features include

  • Automatically report and highlight any abnormal SMART information.
  • Ability to enable / disable SMART.
  • Ability to enable / disable Automatic Offline Data Collection – A short self-check that the drive will perform automatically every four hours with no impact on performance.
  • Ability to set global and per-drive options for smartctl.
  • Display drive identity, capabilities, attributes, error and self-test logs.
  • Perform SMART self-tests.
  • Ability to load smartctl output as a "virtual" device, which acts just like a real (read-only) device.
  • Works on most smartctl-supported operating systems.

inode deleting table entry for item pointing to free inode/ or used inode

Force XFS to repair!

$xfs_repair -L /dev/mapper/Data   

And got following inode error about pointing to either used block or free block

Phase 1 - find and verify superblock...
Phase 2 - using internal log
- zero log...
- scan filesystem freespace and inode maps...
- found root inode chunk
Phase 3 - for each AG...
- scan and clear agi unlinked lists...
- process known inodes and perform inode discovery...
- agno = 0
data fork in regular inode 4497195 claims used block 4832288037
data fork in regular inode 349982619 claims used block 4832288030
- agno = 1
- agno = 2
- agno = 3
- agno = 4
- agno = 5
- agno = 6
- agno = 7
- agno = 8
- agno = 9
- agno = 10
- agno = 11
- agno = 12
- agno = 13
- agno = 14
- agno = 15
- agno = 16
- agno = 17
- agno = 18
- agno = 19
- agno = 20
- process newly discovered inodes...
Phase 4 - check for duplicate blocks...
- setting up duplicate extent list...
- check for inodes claiming duplicate blocks...
- agno = 0
- agno = 1
- agno = 3
- agno = 7
- agno = 8
- agno = 9
- agno = 10
- agno = 11
- agno = 12
- agno = 6
- agno = 14
- agno = 4
- agno = 5
- agno = 16
- agno = 2
- agno = 19
- agno = 20
- agno = 13
- agno = 17
- agno = 18
- agno = 15
data fork in regular inode 4497195 claims used block 4832288037
data fork in regular inode 349982619 claims used block 4832288030
Phase 5 - rebuild AG headers and trees...
- reset superblock...
Phase 6 - check inode connectivity...
- resetting contents of realtime bitmap and summary inodes
- traversing filesystem ...
- traversal finished ...
- moving disconnected inodes to lost+found ...
Phase 7 - verify and correct link counts...
done




Very hesitantly, I ran xfs_db on the two inodes that xfs_repair complained about. Then ran xfs_repair again, and this time it didn't mention them.... and now I can delete the files I could not delete before...

Hopefully nothing else is missing...

(in my case below instead of mapper/data its md0)

$ xfs_db -x -c 'inode 4497195' -c 'write core.nextents 0' -c 'write core.size 0' /dev/mapper/Data

core.nextents = 0
core.size = 0


$ xfs_db -x -c 'inode 349982619' -c 'write core.nextents 0' -c 'write core.size 0' /dev/mapper/Data

core.nextents = 0
core.size = 0

Thursday, July 24, 2014

Install and setup zabbix agent agentd on RHEL RHEL6.5 UBUNTU UBUNTU12.04 / 14.04

Installing the Zabbix (Monitoring) agent.

 

 

RHEL 6.5

<pre>

               # Download and install repository package, install keys and add to repolist.

               rpm -ivh http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-release-2.2-1.el6.noarch.rpm

               yum install -y zabbix-agent-2.2.4-1.el6.x86_64

 

               # Edit file *.conf file and add following details

               sed -i -e "s/Hostname=\(.*\)/Hostname=`hostname|awk -F. '{print $1}'`/g"

               sed -i -e "s/Server=\(.*\)/Server=10.0.0.22/g" /etc/zabbix/zabbix_agentd.conf

               sed -i -e "s/ServerActive=\(.*\)/ServerActive=10.0.0.22/g" /etc/zabbix/zabbix_agentd.conf

              

               # View the changes that were made to file

               grep Hostname= /etc/zabbix/zabbix_agentd.conf

               grep Server= /etc/zabbix/zabbix_agentd.conf

               grep ServerActive= /etc/zabbix/zabbix_agentd.conf

 

               chkconfig --levels 345 zabbix-agent on

               service zabbix-agent restart

 

</pre>

UBUNTU 12.04

<pre>

              # Download and install repository package, install keys and add to repolist.

               wget http://repo.zabbix.com/zabbix/2.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_2.2-1+precise_all.deb

               dpkg -i zabbix-release_2.2-1+precise_all.deb

               # As 'root' Comment out the extras sources from /etc/apt/sources.list file

               apt-get update

               apt-get install zabbix-agent

              

               # Update the rc configs to set the runlevel for zabbix-agent

               update-rc.d zabbix-agent start 20 2 3 4 5 . stop 20 0 1 6 .

 

               # Edit file *.conf file and add following details

               sed -i -e "s/Hostname=\(.*\)/Hostname=`hostname|awk -F. '{print $1}'`/g"

               sed -i -e "s/Server=\(.*\)/Server=10.0.0.22/g" /etc/zabbix/zabbix_agentd.conf

               sed -i -e "s/ServerActive=\(.*\)/ServerActive=10.0.0.22/g" /etc/zabbix/zabbix_agentd.conf

              

               # View the changes that were made to file

               grep Hostname= /etc/zabbix/zabbix_agentd.conf

               grep Server= /etc/zabbix/zabbix_agentd.conf

               grep ServerActive= /etc/zabbix/zabbix_agentd.conf

</pre>

 

 

UBUNTU 14.04

<pre>

              # Download and install repository package, install keys and add to repolist.

               wget http://repo.zabbix.com/zabbix/2.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_2.2-1+trusty_all.deb

 

               dpkg -i zabbix-release_2.2-1+trusty_all.deb

 

               apt-get update

               apt-get install zabbix-agent

 

               # Update the rc configs to set the runlevel for zabbix-agent

               update-rc.d zabbix-agent start 20 2 3 4 5 . stop 20 0 1 6 .

 

               # Edit file *.conf file and add following details

               sed -i -e "s/Hostname=\(.*\)/Hostname=`hostname|awk -F. '{print $1}'`/g"

               sed -i -e "s/Server=\(.*\)/Server=10.0.0.22/g" /etc/zabbix/zabbix_agentd.conf

               sed -i -e "s/ServerActive=\(.*\)/ServerActive=10.0.0.22/g" /etc/zabbix/zabbix_agentd.conf

              

               # View the changes that were made to file

               grep Hostname= /etc/zabbix/zabbix_agentd.conf

               grep Server= /etc/zabbix/zabbix_agentd.conf

               grep ServerActive= /etc/zabbix/zabbix_agentd.conf

 </pre>

 

WINDOWS 7/8

è Start -> RUN -> type following  "command"

*****             open commandline as a Admin user

è  Add all the new boxes to zabbix

 

o   Download

<pre>

        net use N: \\cuda-fs0\installers
mkdir c:\zabbix
xcopy n:\zabbix c:\zabbix /E /Y

</pre>

o   Setup the zabbix deamon as service

<pre>

         zabbix_agentd.exe --config c:\zabbix\conf\zabbix_agentd.win.conf --install

</pre>


o   Adds firewall exception for

§  inbound rules

<pre>

      netsh advfirewall firewall add rule localport=10050 protocol=tcp name="Allow zabbix-agent" action=allow dir=in security=notrequired

</pre>

§  outbound rules

<pre>     netsh advfirewall firewall add rule localport=10050 protocol=tcp name="Allow zabbix-agent" action=allow dir=out security=notrequired

</pre>

o   Start Daemon

             net start "zabbix agent"

 

è Append the configuration file "C:\zabbix\conf\zabbix-agentd.conf"

o   Find and replace with following lines (Server/ServerActive=10.0.0.21) without quotes

§  Hostname=eris-w764-buildxx

§  Server=10.0.0.21

§  ServerActive=10.0.0.21

<pre>

hostname.exe > __hostname.txt
set /p host=<__hostname.txt
echo Hostname=%host% >> c:\zabbix\conf\zabbix_agentd.win.conf
echo Server=10.31.97.194 >> c:\zabbix\conf\zabbix_agentd.win.conf
echo ServerActive=10.31.97.194 >> c:\zabbix\conf\zabbix_agentd.win.conf

</pre>


    • net use N: /DELETE


Friday, July 18, 2014

Turn on SSL in Tomcat7 / Setup SSL on TOMCAT7, Linux, UBUNTU server

The SSL was successfully setup on the APPSERVER.COMPANY.COM server today.  I have done a little write up on the steps to setup for a tomcat7 – linux(Ubuntu) server as follows and for future reference. 

 

 

NOTE: follow examples of commands below closely for the consistency of –alias used in the keystore.

 

 

1. Generate Key in keystore with JKS format (default). 

            Make sure the field "First and Last name" contains the servername or servers fully qualified domain name (FQDN)

            Duplicate other fields as it appears below (certs are case sensitive)

 

            root@appserver:/etc/tomcat7# keytool -genkey -keyalg RSA -alias tomcat-fqdn -keystore keystore.jks -validity 999 -keysize 2048

       Enter keystore password: 

       Re-enter new password:

       What is your first and last name?

         [Unknown]:  appserver.company.com

       What is the name of your organizational unit?

         [Unknown]:  SW-CUDA

       What is the name of your organization?

         [Unknown]:  Company Corporation

       What is the name of your City or Locality?

         [Unknown]:  Santa Cruz

       What is the name of your State or Province?

         [Unknown]:  California

       What is the two-letter country code for this unit?

         [Unknown]:  US

       Is CN=appserver.company.com, OU=SW, O=Company Corporation, L=Santa Cruz, ST=California, C=US correct?

         [no]:  yes

 

       Enter key password for <tomcat-fqdn>

             (RETURN if same as keystore password): 

 

2. Check the keystore for the list of keys you added, setup alias for listing keys it comes in handy notice "no filename" in alias.

 

 

       root@appserver:/etc/tomcat7# alias listkey='keytool -list -storepass urpass -keystore '

 

       root@appserver:/etc/tomcat7# listkey keystore.jks

 

       Keystore type: JKS

       Keystore provider: SUN

 

       Your keystore contains 1 entry

 

 

       tomcat-fqdn, Jul 18, 2014, PrivateKeyEntry,

       Certificate fingerprint (SHA1): 51:F8:A8:31:BC:63:5A:BD:8E:A5:3B:29:0D:4B:98:03:8C:2A:63:C5

       root@appserver:/etc/tomcat7#

           

 

 

3. Configure the tomcat7 configuration  file "server.xml" in "/etc/tomcat7/" directory to the keystore.jks path

            ...

       ..

       <Connector

             protocol="HTTP/1.1"

             port="443"

             maxThreads="150"

             scheme="https"

             secure="true"

             SSLEnabled="true"

             keystoreFile="/etc/tomcat7/keystore.jks"

             keystorePass="urpass"

             clientAuth="false"

             keyAlias="tomcat-fqdn"

             sslProtocol="TLS"

       />

       ...

 

4. Restart the tomcat server, At this point the https will start working.

 

            P.S: use the following alias, it comes in handy

                        alias tomreboot='/etc/init.d/tomcat7 stop ; /etc/init.d/tomcat7 start'

 

            root@appserver:/etc/tomcat7# tomreboot

        * Stopping Tomcat servlet engine tomcat7                       [ OK ]

        * Starting Tomcat servlet engine tomcat7                       [ OK ]

       root@appserver:/etc/tomcat7#

 

 

 

 

*. Import the Root Cert

 

            root@appserver:/etc/tomcat7# keytool -import -alias root -keystore keystore.jks -trustcacerts -file /root/certs/root.cer

       Enter keystore password:

       Owner: CN=HQSERVER-NAME, DC=company, DC=com

       Issuer: CN=HQSERVER1-NAMERTCA

       Serial number: 61. . . . 0004

       Valid from: Tue Jan 24 13:36:39 PST 2012 until: Mon Jan 24 13:46:39 PST 2022

       ...

       ...

       ..

       Trust this certificate? [no]:  yes

       Certificate was added to keystore

       root@appserver:/etc/tomcat7#

 

            Follow Step 2. as follows

 

                        root@appserver:/etc/tomcat7# listkey keystore.jks

 

             Keystore type: JKS

             Keystore provider: SUN

 

             Your keystore contains 2 entries

 

             root, Jul 18, 2014, trustedCertEntry,

             Certificate fingerprint (SHA1): 37:D2:D6:64:7E:40:51:94:43:63:E8:3B:6C: BD:8E:A5:3B:29:0D:4B

             tomcat-fqdn, Jul 18, 2014, PrivateKeyEntry,

             Certificate fingerprint (SHA1): 51:F8:A8:31:BC:63:5A: 51:F8:A8:31:BC:63:5A:51:F8:A8:31:BC:63

             root@appserver:/etc/tomcat7#

 

 

 

4. Generate Certificate Signing Request (CSR) for the Certificate Athority to approve.

 

            root@appserver:/etc/tomcat7# keytool -certreq -keyalg RSA -keysize 2048 -alias tomcat-fqdn -file appserver.company.com.csr -keystore keystore.jks

       Enter keystore password: 

           

            P.S: Verify the new file named "appserver.company.com.csr" got created.

            root@appserver:/etc/tomcat7# ls

       Catalina  catalina.properties  context.xml  appserver.company.com.csr  keystore.jks  logging.properties  policy.d  server.xml  tomcat-users.xml  web.xml

       root@appserver:/etc/tomcat7#

 

 

 

5. Send over the ".csr" file to the Signing Athority

 

           

           

            First will take the .csr and will return a .crt file in return. 

            If requested he will provide the .cer file as well.  

            **NOTE: All the files are in binary format.

 

 

6. Convert the files from binary to text with base-64 encoding

            No special tool is needed for this task.

            Double click on the certificate file provided to you in a Windows 7/8 machine.

            Click -> "Details" tab --> "Copy to file" button

                        -> Next

                        --> select "Base-64 encoded" radiobutton

                        -> Next

                        --> "Browse" button and select a location and "name.cer" for the file

                        -> Finish

 

 

 

7. Do the above steps for both the certificate files and combine the content in seperate file

            a. the "root.cer"

            b. the "appserver.company.com.cer"

 

            - Create a new file "combo.cer" and copy paste the content from both the files into the new file in seperate lines

 

            - Copy over the combo.cer over to the appserver.company.com servers "/etc/tomcat7/" directory.

 

 

 

8. copy and IMPORT the "combo.cer" file over to the the linux server wit tomcat server

            To import the combo.cer into the "keystore.jks" type following command

 

            root@appserver:/etc/tomcat7# keytool -import -alias tomcat-fqdn -keystore keystore.jks -file combo.cer

       Enter keystore password: 

       Certificate reply was installed in keystore

       root@appserver:/etc/tomcat7#

 

            Follow the step 2. List the keys, Notice how the "tomcat-fqdn" key has changed after the succesful import

 

                        root@appserver:/etc/tomcat7# listkey keystore.jks

 

             Keystore type: JKS

             Keystore provider: SUN

 

             Your keystore contains 2 entries

 

             root, Jul 18, 2014, trustedCertEntry,

             Certificate fingerprint (SHA1): 37:D2:D6:64:7E:40:51: 37:D2:D6:64:7E:40:51: 37:D2:D6:64:7E:40

             tomcat-fqdn, Jul 18, 2014, PrivateKeyEntry,

             Certificate fingerprint (SHA1): 51:F8:A8:31:BC:63:5A: 51:F8:A8:31:BC:63:5A:51:F8:A8:31:BC:63

             root@appserver:/etc/tomcat7#

 

 

           

9. Repeat Step 4. Reboot the tomcat7 service

 

 

Wednesday, July 16, 2014

[NFS] /proc/net/rpc/nfsd file explained


This file is populated writen by /proc/net/rpc/nfsd file by kernel code linux/fs/nfsd/stats.c and linux/net/sunrpc/stats.c: 

cat /proc/net/rpc/nfsd
rc 14 277482605 1519481075
fh 5208 0 0 0 0
io 3197575487 677537481
th 128 1196 48 11 677 54 66 31 288 27 26 118
ra 256 1089064507 0 0 0 0 0 0 0 0 0 1410044
net 471073134 0 471089819 60766
rpc 1796938178 0 0 0 0
proc2 18 0 152 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
proc3 22 1 219996357 556065 24059461 43520164 606473 150260668 28056897 545340 198181 3708 0 412742 104649 177365 10 4940 255357 152 3
 0 1809695
proc4 2 0 0
proc4ops 40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Line by line explaination

rc 14 277482605 1519481075
    rc <hits> <misses> <nocache> Statistsics for the reply cache [3]
    - hits: client it's retransmiting (a bad thing! o hits is good)  [1]
     - misses: a operation that requires caching
     - nocache: a operation that no requires caching

fh 5208 0 0 0 0
    fh (filehandle): <stale> <total-lookups> <anonlookups> [1]
        <dir-not-in-cache> <nodir-not-in-cache>
     - stale: *supose* to be file handle errors (like when you resize the
              underlying filesystem)
     - total-lookups, anonlookups, dir-not-in-cache, nodir-not-in-cache: do
       not appear (and I always seen it as zeros). So I supose they are unused.

io 3197575487 677537481
    io (input/output): <bytes-read> <bytes-written>
     - bytes-read: bytes read directly from disk
     - bytes-written: bytes written to disk           

th 128 1196 48 11 677 54 66 31 288 27 26 118
    th (threads): <threads> <fullcnt> <10%-20%> <20%-30%> ... <90%-100%> <100%>
     - threads: number of nfsd threads
     - fullcnt: number of times that the last 10% of threads  (so all threads) are busy.
     - 10%-20% (1196), 20%-30% ... 90%-100%: histogram (in the unit of seconds) of the percentage of threads is used
       1196 means there is 1196 seconds in which more than 10% threads (and less than 20% threads) are 
       used.

ra 256 1089064507 0 0 0 0 0 0 0 0 0 1410044
    ra (read-ahead): <cache-size> <10%> <20%> ... <100%> <not-found>
     - cache-size: always the double of number threads
     - 10%, 20% ... 100%: how deep it found what was looking for. I *suppose*
       this means how far the cached block is from the original block that was
       first requested.
     - not-found: not found in the read-ahead cache

net 1797032444 15813112 1781194739 52706
   net: <netcnt> <netudpcnt> <nettcpcnt> <nettcpconn>
    - netcnt: counts every read
    - netudpcnt: counts every UDP packet it receives
    - nettcpcnt: counts every time it receives data from a TCP connection
    - nettcpconn: count every TCP connection it receives

rpc 1796938178 0 0 0 0
   rpc: <rpccnt> <rpcbadfmt+rpcbadauth+rpcbadclnt> <rpcbadfmt> <rpcbadauth> <rpcbadclnt>
    - rpccnt: counts all rpc operations
    - rpcbadfmt: counts if while processing a RPC it encounters the
                 following errors: err_bad_dir, err_bad_rpc, err_bad_prog, err_bad_vers,
                 err_bad_proc, err_bad
    - rpcbadauth: bad authentication. It does not count if you try to mount
                  from a machine that it's not in your exports file
    - rpcbadclnt: unused

proc3 22 1 219996357 556065 24059461 43520164 606473 150260668 28056897 545340 198181 3708 0 412742 104649 177365 10 4940 255357 152 3
 0 1809695
   This should be the nfsv3 statistic, comparing with the output of nfsstat, we should be able to figure out what are those number for

Server nfs v3:
null         getattr      setattr      lookup       access       readlink   
1         0% 219996357 46% 556065    0% 24059461  5% 43520164  9% 606473    0%
read         write        create       mkdir        symlink      mknod       
150260668 31% 28056899  5% 545340    0% 198181    0% 3708      0% 0         0%
remove       rmdir        rename       link         readdir      readdirplus 
412742    0% 104649    0% 177365    0% 10        0% 4940      0% 255357    0%
fsstat       fsinfo       pathconf     commit     
152       0% 3         0% 0         0% 1809696   0%

Looks like field 9 and filed 10 is the read and write count. But I still can not tell the difference between
<netcnt> and this nfs read count.

reference:
[1] http://www.opensubscriber.com/message/nfs@lists.sourceforge.net/7833588.html
[2] http://blog.peacon.co.uk/wiki/Monitoring_NFS_Performance
[3] ftp://82.96.64.7/pub/linux/kernel/people/marcelo/linux-2.4/fs/nfsd/stats.c

Friday, June 13, 2014

Compile Vim 7.4 on CENTOS 6 or RHEL 6 box --enable-gui=yes :help csapprox+gui



The following article covers the steps required to build and install VIM 7.4 on CentOS 6/RHEL 6 system. It was necessary to install VIM 7.3+ version on my CentOS 6 system in order to use VIM spf13

remove any installed vim packages

yum remove $(rpm -qa | grep ^vim)

download VIM version 7.4 from here: ftp://ftp.vim.org/pub/vim/unix/
mkdir -p /opt/pkgs

cd /opt/pkgs

wget ftp://ftp.vim.org/pub/vim/unix/vim-7.4.tar.bz2

tar jxvf vim-*.tar.bz2

rm -f vim-*.tar.bz2

cd vim*

set-up build environment
yum install gcc make ncurses-devel

configure and build VIM sources
./configure --disable-selinux \

--enable-multibyte \

--with-features=huge \

--with-modified-by=Ndosh \

--enable-gui=yes



make

make install

re-hash the environment

hash -r


Tuesday, April 8, 2014

One magic line to setup awesomeness for VIM editor in OSX [lots of plugins]

On you MAC OSX box run the following command in a terminal prompt for all the awesomeness.

$ curl http://j.mp/spf13-vim3 -L -o - | sh


Credits: Rajesh Parvathaneni: https://github.com/rajonrails/spf13-vim

A basic .muttrc for use with GMAIL

# A basic .muttrc for use with GMAIL

#Change the following six lines to match your Gmail account details

set imap_user = "username@gmail.com"
set imap_pass = "your-password"
set smtp_url = "smtp://username@smtp.gmail.com:587/"
set smtp_pass = "your-password"
set from = "username@gmail.com"
set realname = "First Last"


#Change the following line to a different editor you prefer
set editor = "vim"

set folder = "imaps://imap.gmail.com:993"
set spoolfile = "+INBOX"
set postponed="+[Gmail]/Drafts"

set header_cache=~/.mutt/cache/headers
set message_cachedir=~/.mutt/cache/bodies
set certificate_file=~/.mutt/certificates

set move = no


set sort = 'threads'
set sort_aux = 'last-date-received'
set imap_check_subscribed

ignore "Authentication-Results:"
ignore "DomainKey-Signature:"
ignore "DKIM-Signature:"
hdr_order Date From To Cc