Posts

SS command in Linux - more powerful than netstat

Today i want to share a command ss (Socket statistics) to investigate network and debug tcp connections. ss  is  used to dump socket statistics. It allows showing information similar to netstat.  It can display more TCP and state information than other tools. It is present in most of our Linux machines. ss commands has lot of options. To get all options: ss -help Few commands and outputs worth trying are as below: ss -t ->stands for tcp. Gives information about tcp connections that are available on the system #ss -t State       Recv-Q Send-Q                                Local Address:Port                             ...

Initial basic checks before proceeding to DB tunings in MSSQL

Image
Initial basic checks before proceeding to DB tunings in MSSQL: Check your SQL Server environment before tuning for performance Sometimes when we have issues with slow response for our DB queries, we think of tuning the query assuming the SQL Server is tuned and it may be problem with queries. But it is observed that it is better to make a common practice to check the basic configuration settings of the SQL server before we start to analyze the queries deeper. Today i will try to touch base some of those settings which we always need to check for proper settings of the SQL server Environment. Check 1: Database and Transaction log files on separate drives To obtain optimal SQL performance, it is recommended to separate the data and the log files onto separate physical drives. Placing both data AND log files on the same device can cause contention for that device, resulting in poor performance. Placing the files on separate drives allows the I/O activity to occur at the sa...

Linux tuning while running huge load using Jmeter

While running our jmeter load tests on Unix box with a target of 2500 User Load we got the exception “Non HTTP response code: java.net.NoRouteToHostException,Non HTTP response message: Cannot assign requested address” in jmeter log We have set open files limit to 50000 and ran the test, but still we were getting the errors. $ ulimit -a core file size          (blocks, -c) 0 data seg size           (kbytes, -d) unlimited scheduling priority             (-e) 0 file size               (blocks, -f) unlimited pending signals                 (-i) 31182 max locked memory       (kbytes, -l) 64 max memory size     ...

Starting Perfmon on all Windows machines with a single Batch file

In one of our project we have more than 4 Windows servers. We use perfmon to monitor the resource utilization. Each time we run load test we start the perfmon on all the servers. So created the below batch file to do the job. The batch file does the below: Create a directory with current date and time Start perfmon on all 4 AR servers Wait for 1 hr Copy the result file (.csv) from each server into the director created in step1. Stop perfmon on all 4 AR servers. @echo off for /f %%I in ('wmic os get localdatetime ^|find "20"') do set dt=%%I REM dt format is now YYYYMMDDhhmmss... REM set dt=%dt:~4,2%-%dt:~2,2%-%dt:~0,4% set dt=%dt:~6,2%%dt:~4,2%%dt:~2,2%%dt:~8,2%%dt:~10,2% echo %dt% mkdir D:\Perfmon\Perfmon_%dt% logman start "Counter" -s server1 logman start "Counter" -s server2 logman start "Counter" -s server3 logman start "Counter" -s server4 timeout /t 3600 copy \\server1\c...

Beaware!!! with NewRatio while using Concurrent Mark Sweep GC as Garbage Collector

In Sun JDK there were few bugs previously with subject “ JDK-6872335 : NewRatio ignored when UseConcMarkSweepGC set”. http://bugs.java.com/view_bug.do?bug_id=6872335 http://bugs.java.com/view_bug.do?bug_id=6862534 Although these bugs are fixed, but IMO the bug still exists for default settings of NewRatio when UseConcMarkSweepGC is used. We still have the bug where the default NewRatio=2 is not considered along with UseConcMarkSweepGC Option #1 : Default GC (-XX:+UseParallelGC) : PSYoungGen      total 1835008K = 1.75GB (As it considered the default NewRatio=2) # /usr/bin/java -server -Xms6144m -Xmx6144m -XX:MaxMetaspaceSize=256m -XX:+PrintCommandLineFlags -XX:+PrintGCDetails -version -XX:InitialHeapSize=6442450944 -XX:MaxHeapSize=6442450944 -XX:MaxMetaspaceSize=268435456 -XX:+PrintCommandLineFlags -XX:+PrintGCDetails -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC java version "1.8.0_60" Java(TM) SE Runti...

To Obtain GC details from running java process whithout adding the GC monitoring parameters in jvm args

Just wanted to share a tool for GC Monitoring. If you’ve forgotten to enable GC logging, or wanted to monitor GC in the middle of the load test, there is a good substitute to watch how GC operates over time. jstat is the tool of choice. jstat can provide good visibility into GC for a live program. jstat provides nine options to print different information about the heap; jstat -options will provide the full list. One useful option is -gcutil, which displays the time spent in GC as well as the percentage of each GC area that is currently filled. Other options to jstat will display the GC sizes in terms of KB. jstat takes an optional argument—the number of milliseconds to repeat the command—so it can monitor over time the effect of GC in an application. Syntax : jstat -gcutil <pid> <Milli Sec to repeat> Here is some sample output repeated every second: Ø jstat -gcutil 90776 1000       S0     S1 ...

Command to obtain complete details of a process running in windows

Just wanted to share a command in Windows, to obtain complete details of the processes running in windows. In Unix/Linux we use the below command to obtain all the java processes running on particular server: ps -ef|grep java which shows the PID, command line and other details. The same can be obtained in windows OS. Using Task Manager to show the command line option, the display value is so long that the CLASSPATH setting gets cut off and complete details are not obtained. To show the entire command line including switches/options is to use the WMIC command: C:\> WMIC process where caption="java.exe" Open an windows CMD prompt, execute the following "Windows Management Instrumentation Command-line" (WMIC): To obtain processid and commandline provide the arguments as get C:\> WMIC process where caption="java.exe" get processid,commandline Note: You can pipe the result out to a file like below: (Open cmd prompt ...