Title: Using netstat for Performance Analysis
1Using netstat for Performance Analysis
2Network vs. Individual System Performance
This system could contain a number of networked
subsystems!
System
Completions
Arrivals
3Here we have a basic system containing networked
subsystems.
System A
Aa
Ca
System B
Ab
Cb
Cn
An
Ac
Cc
System C
A switching or broadcasting device
Now, in addition to worrying about individual
system performance, we have to worry about
network performance!
4Tracking Network Traffic
- In individual systems we track the progress of
jobs, from their arrival to their completion, to
determine performance. - In a network we can not do this. Entire jobs are
not moved in and out of systems on a network. - Instead, packets of information pass through
those systems. We can monitor these packets to
analyze performance.
5Introducing netstat
6About netstat
- Netstat has options for viewing your network data
in many different formats. - Some used to measure throughput.
- Others used to diagnose network problems.
- Many may require a deeper level of network
hardware knowledge than is applicable to this
course.
7netstat -i 1
Shows incoming and outgoing packet counts and
sizes every second.
What were looking for here are errors (errs)
from either output or input.
You wont have to worry about collisions unless
youre using a hub-based network, but if you are
then they can be significant.
8netstat -i
Can be run without time interval for a more
comprehensive history (since last system boot).
- Useful benchmarks for analysis using netstat i
- (CollIerrsOerrs)/(IpktsOpkts) gt 2
- This could indicate problems in your network
hardware. - (Coll/Opkts) gt 10
- Your hub network should be segmented with
additional switches. - (Ierrs/Ipkts) gt 25
- Your system or network may be overloaded.
9netstat -a
Lists all active connections
But as you can imagine, our fang machine has a
ton of them, so Ill specify pTCP to limit it to
TCP connections.
This indicates that the receiving system can not
get these packets fast enough. This is a problem
with the network (either yours or theirs) and NOT
your system. (However, sending queues with sizes
this small are typical.)
Keep an eye here, too. If a connection gets hung
up in a waiting state, it may be a sign of
problems in your protocol handling.
Large, ongoing spikes here would indicate
a bottleneck on your system, as this queue is for
packets to be used by a job on this machine.
10Deeper Analysis
- netstat -s
- Historical statistics, by protocol.
- Diagnose protocol handling/routing issues.
- spray
- Separate tool, sends bursts of meaningless
packets. - Great for determining levels of congestion.
- Send absurd amount of packets, see how many get
dropped. - Same technique can be used between two networked
machines to determine if an issue is the product
of congestion or due to a slow receiving machine.
11Measuring Individual Throughput with netstat
- You could use netstat -i 1, pick an interval of
time, and see how much data gets pushed out in
that interval. - However, packet input and output are not in a
1-to-1 correspondence like job acceptance and
completion. - If a remote system is uploading a large file to
your system, your packets in will be vastly
greater than your packets out!
12Using Goodput Instead
- Goodput is simply throughput which takes in to
account protocol overhead and retransmitted
packets. - It measures only bits useful on the application
level. - If you know how much data from each packet is NOT
overhead, this is calculated the same as
throughput by simply multiplying by the
percentage of non-overhead bits afterwards. - Must also remember to exclude retransmitted
packets (netstat -s provides this information).
13So Whats the Point?
- When youre trying to estimate performance on a
network level, you have to consider factors
OUTSIDE of your system. - netstat can tell you whether or not your poor
performance is caused by network elements, and
can give you some indication of how much it may
be slowing you down.
14System Performance using vmstat
15Synopsis
- Analyzing Performance .
- Why Analyze Performance ?
- Performance Analysis Commands.
- Virtual Memory.
- Vmstat.
- Determining CPU usage with vmstat.
- Graphical Representation of vmstat.
- Bibliography.
16Analyzing Performance
- Performance Analysis is the Process of analyzing
performance bottlenecks in the system. - It Involves a number of steps
- Identify the problem.
- Is the problem CPU oriented or I/O related ?
- CPU Problem - What is the Load Average ?
- I/O problem is it paging or normal disk I/O?
17Why Analyze Performance?
- To eliminate bottlenecks.
- To reduce the Resident Time.
- To increase the Throughput.
- Increase the overall efficiency of the system.
18Performance Analysis Commands
- vmstat VIRTUAL MEMORY STATISTICS.
- netstat NETWORK STATISTICS.
- iostat INPUT/OUTPUT STATISTICS
19Virtual Memory
- Memory, often as simulated on a hard disk, that
emulates RAM, allowing an application to operate
as though the computer has more memory than it
actually does.
20Computer Hierarchy
                                                                                                                       Â
21vmstat
- vmstat (Virtual Memory STATistics) is a computer
operating system monitoring tool that collects
and displays summary information about memory,
processes, interrupts, paging and block I/O
information. - Also vmstat command reports statistics about
kernel threads, virtual memory, disks, traps and
CPU activity. - Reports generated by the vmstat command can be
used to balance system load activity.
22vmstat
- Syntax
- vmstat -a -n delay count vmstat -f
-s -m vmstat -S unit vmstat -d vmstat -p
disk partition vmstat -V - -f Reports the number of forks since system
startup. - -i Displays the number of interrupts taken by
each device since system startup. - -s Display the contents of the sum structure,
giving the total number of several kinds of
paging related events which have occurred since
system startup.
23vmstat
- -a switch displays active/inactive memory .
- -m displays slab info.
- -n switch causes the header to be displayed only
once rather than periodically. - -d reports disk statistics .
- -p followed by some partition name for detailed
statistics. - -V switch results in displaying version
information.
24DETERMINING CPU USAGE WITH VMSTAT
25Description
- Procs
- r The number of processes waiting for run time.
- b The number of processes in uninterruptible
sleep. - Memory
- swpd The amount of virtual memory used.
- free The amount of idle memory.
- buff The amount of memory used as buffers.
- cache The amount of memory used as cache.
- inact The amount of inactive memory. (-a
option) - active The amount of active memory. (-a option)
26Description
- Swap
- si Amount of memory swapped in from disk
(/s). - so Amount of memory swapped to disk (/s).
- IO
- bi Blocks received from a block device
(blocks/s). - bo Blocks sent to a block device (blocks/s).
- System
- in The number of interrupts per second.
- cs The number of context switches per second.
27Description
- CPU
- These are percentages of total CPU time.
- us Time spent running non-kernel code.
- sy Time spent running kernel code.
- id Time spent idle.
- wa Time spent waiting for io.
- st Time stolen from a virtual machine.
28Graphical Representation
29Graphical Representation
30Graphical Representation
31Bibliography
- References obtained from
- http//en.wikipedia.org/wiki/Main_Page
- http//www.redhat.com
- http//www.freebsd.org
- http//www.linuxcommand.org/man_pages/vmstat8.html
- http//www.linuxjournal.com
32THE END
33PERFORMANCE ANALYSISusingIOSTAT
34What is Performance Analysis?
- Whenever CPU is occupied by a process, it is
unavailable for processing other requests. This
becomes a bottleneck in the system. - To troubleshoot CPU performance finding CPU
utilization is one of the important tasks.
35iostat
- iostat reports CPU statistics and Input/Output
statistics for devices and partitions. - The reports generated can be used to change
system configuration to better balance the
input/output load between physical disks. - It can be used to find systems average CPU
utilization since the last reboot.
36Syntax for iostat
- Syntax is iostat ltoptionsgt interval count
- options - Lets you specify the device for which
information is needed like disk , cpu or
terminal. (-d , -c , -t or -tdc ). x options
gives the extended statistics. - Interval - It is time period in seconds between
two samples. iostat 4Â will give data at each 4
seconds interval. - count - It is the number of times the data is
needed. iostat 4 5Â Â will give data at 4
seconds interval 5 times.
37Analyzing CPU
Percentage of time that the CPU or CPUs were
idle during which the system did not have
outstanding request
Percentage of CPU utilization
Executing at the user level with nice priority.
Percentage of time that the CPU or CPUs were
idle during which the system had outstanding
request
Executing at the system level (kernel).
38Report
- The report generated by the iostat command is
the CPU Utilization Report. - The report consists of a tty and CPU header row
followed by a row of tty and CPU statistics. - Also, the I/O wait state is defined system-wide
and not per processor.
39Analyzing Disk
number of transfers per second
total number of blocks written
amount of data read from the drive
amount of data written to the drive
total number of blocks read
40Report
- The second report generated by the iostat is
the Disk Utilization Report. - The device report provides statistics on a
per physical device or partition basis.
41Iostat Using Time
Print the time for each report displayed
42Report
- The first report contains statistics for the time
since system start up (boot). - Each subsequent report contains statistics
collected during the interval since the previous
report.
43- Command used to get 2 reports for disk
utilization in interval of 2 seconds - - iostat d 2 2
44Putting it Together
- iostat is basically used for CPU statistics
input/output statistics for devices and
partitions. - iostat command can be specifically used to get
reports either for CPU or for Input/Output. - The time at which a certain was generated can
also be captured. - Thus, iostat helps us to find out which process
is using how much CPU or Input/Output. - Likewise system configuration steps can be
ammended to make necessary changes for CPU and
Input/Output usage