The list below is a collection of Linux tool i'm using for performance analysis
each command and tool syntax can be retrieved via "man COMMAND"
Process statistics:
/sys filesystem - documentation is in the kernel source/Documenation
/debugfs filesystems - documentation is in the kernel source/Documenation
sar - Collect, report, or save system activity information.
sadc - System activity data collector.
sa1 - Collect and store binary data in the system activity daily data file.
sa2 - Write a daily report in the /var/log/sysstat directory.
sadf - Display data collected by sar in multiple formats.
isag - Interactive System Activity Grapher
mpstat - Report processors related statistics.
vmstat - Report virtual memory statistics
dstat - versatile tool for generating system resource statistics
pidstat - Report statistics for Linux tasks.
top - display Linux processes
htop - interactive process viewer
proc - process information pseudo-filesystem
ps - report a snapshot of the current processes.
pstree - display a tree of processes
pgrep, pkill - look up or signal processes based on name and other attributes
killall - kill processes by name
killall5 - send a signal to all processes.
kill - send a signal to a process
nice - run a program with modified scheduling priority
renice - alter priority of running processes
snice, skill - send a signal or report process status
atop - AT Computing's System & Process Monitor
atopsar - AT Computing's System Activity Report (atop related)
saidar - a curses-based tool for viewing system statistics
nmon - systems administrator, tuner, benchmark tool
nproc - show number of processors
How to get os version:
/etc/debian_version
/etc/lsb-release
/etc/issue
/etc/issue.net
lsb_release - print distribution-specific information
uname - print system information (and kernel version)
unity - wrapper for starting the unity shell and handling fallback
memory:
free - Display amount of free and used memory in the system
smem - Report memory usage with shared memory divided proportionally.
shared libraries:
sprof - read and display shared object profiling data
system:
uptime - Tell how long the system has been running.
locking and deadlocks:
mutrace - traces lock contention has no manual pages
https://wiki.linaro.org/Platform/DevPlatform/Tools/Mutrace
http://0pointer.de/blog/projects/mutrace.html
disk tools:
df - report file system disk space usage
du - estimate file space usage
smartctl - Control and Monitor Utility for SMART Disks
GSmartControl - Hard disk drive health inspection tool
hddtemp - Utility to monitor hard drive temperature
swapon, swapoff - enable/disable devices and files for paging and swapping
fdisk - manipulate disk partition table
cfdisk - display or manipulate a disk partition table
sfdisk - partition table manipulator for Linux
partx - tell the Linux kernel about the presence and numbering of on-disk partitions
addpart - a simple wrapper around the "add partition" ioctl
delpart - simple wrapper around the "del partition" ioctl
partprobe - inform the OS of partition table changes
GNU Parted - a partition manipulation program
blkid - locate/print block device attributes
findfs - find a filesystem by label or UUID
wipefs - wipe a signature from a device
io tools:
iostat - Report Central Processing Unit (CPU) statistics and input/output statistics for devices and partitions.
iotop - simple top-like I/O monitor
ionice - set or get process I/O scheduling class and priority
hdparm - get/set SATA/IDE device parameters
sdparm - access SCSI modes pages; read VPD pages; send simple SCSI commands.
lsscsi - list SCSI devices (or hosts) and their attributes
blktool - Display or change block device settings
blktrace - generate traces of the i/o traffic on block devices
btrace - perform live tracing for block devices
blkiomon - monitor block device I/O based o blktrace data
blkrawverify - verifies an output file produced by blkparse
verify_blkparse - verifies an output file produced by blkparse
blkparse - produce formatted output of event streams of block devices
btt - analyse block i/o traces produces by blktrace
bno_plot - generate interactive 3D plot of IO blocks and sizes
btreplay - recreate IO loads recorded by blktrace
btrecord - recreate IO loads recorded by blktrace
ioreplay - IO traces replayer
ioprofiler - same package as ioreplay (ioapps).
does not have a manual page.
graphical viewer for io logs
/proc/scsi/scsi - /proc filesystem area where you can find scsi info
network filesystems:
nfsiostat - Emulate iostat for NFS mount points using /proc/self/mountstats
cifsiostat - Report CIFS statistics.
mountstats - Displays NFS client per-mount statistics
nfsstat - list NFS statistics
in order to remount every mount point in /etc/fstab type: mount -a
Force unmount : mount -l /mount/point
cpu:
taskset - retrieve or set a process's CPU affinity
cpulimit - limits the CPU usage of a process
schedtool - query and set CPU scheduling parameters
schedtop - scheduler statistics visualization tool
doesn't have a package in ubuntu yet
https://rt.wiki.kernel.org/index.php/Schedtop_utility
sensors - print sensors information
cpuid - Dump CPUID information for each CPU
process ids:
pidof - find the process ID of a running program.
strace - trace system calls and signals
ltrace - A library call tracer
sotruss - trace shared library calls through PLT
pstack - print a stack trace of running processes
X11:
xtrace - trace communication between X11 client and server
used files:
fuser - identify processes using files or sockets
lsof - list open files
debugggers:
valgrind - a suite of tools for debugging and profiling programs
profilers:
gprof - display call graph profile data
valgrind - a suite of tools for debugging and profiling programs
google-pprof - manual page for google-pprof (part of gperftools)
core dumps:
CGDB - curses based frontend to GDB
eclipse - extensible tool platform and Java IDE
xxgdb - X window system interface to the gdb debugger.
qtcreator - Integrated Development Environment for Qt
gdb - The GNU Debugger
gdbtui - does not have a manual page of its own
comes from the same package as gdb (gdb)
gcore - Generate a core file of a running program
resolve_stack_dump - resolve numeric stack trace dump to symbols
elfs:
pahole - Shows and manipulates data structure layout.
kernel:
crash - Analyze Linux crash dump data or a live system
slabtop - display kernel slab cache information in real time
kerneltop - shows kernel function usage in an interactive style like 'top'
kexec - directly boot into a new kernel
sysctl - configure kernel parameters at runtime
getconf - Query system configuration variables
arch - print machine hardware name (same as uname -m)
modules:
lsmod - Show the status of modules in the Linux Kernel
modinfo - Show information about a Linux Kernel module
rmmod - Simple program to remove a module from the Linux Kernel
insmod - Simple program to insert a module into the Linux Kernel
modprobe - Add and remove modules from the Linux Kernel
depmod - Generate modules.dep and map files.
networking:
hostname - show or set the system's host name
domainname - show or set the system's NIS/YP domain name
ypdomainname - show or set the system's NIS/YP domain name
nisdomainname - show or set the system's NIS/YP domain name
dnsdomainname - show the system's DNS domain name
ss - another utility to investigate sockets
ping, ping6 - send ICMP ECHO_REQUEST to network hosts
traceroute6 - traces path to a network host
traceroute - print the route packets trace to network host
itrace - similar to traceroute, yet uses ICMP echo
jnettop - View hosts/ports taking up the most network traffic
iftop - display bandwidth usage on an interface by host
iptraf - Interactive Colorful IP LAN Monitor
ngrep - network grep
tcpdump - dump traffic on a network
tshark - Dump and analyze network traffic
wireshark - Interactively dump and analyze network traffic
dumpcap - Dump network traffic
rawshark - Dump and analyze raw pcap data
editcap - Edit and/or translate the format of capture files
mergecap - Merges two or more capture files into one
text2pcap - Generate a capture file from an ASCII hexdump of packets
ethtool - query or control network driver and hardware settings
netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships
nc — arbitrary TCP and UDP connections and listens
route - show / manipulate the IP routing table
ip - show / manipulate routing, devices, policy routing and tunnels
ifconfig - configure a network interface
ifup - bring a network interface up
ifdown - take a network interface down
ifquery - parse interface configuration
iwconfig - configure a wireless network interface
iwlist - Get more detailed wireless information from a wireless interface
wavemon - a wireless network monitor
telnet — user interface to the TELNET protocol
vnStat - a console-based network traffic monitor
vnStati - png image output support for vnStat
netperf - a network performance benchmark
iperf - perform network throughput tests
nmcli - command‐line tool for controlling NetworkManager
Network firewalls:
iptables/ip6tables — administration tool for IPv4/IPv6 packet filtering and NAT
iptables-restore — Restore IP Tables
ip6tables-restore — Restore IPv6 Tables
iptables-save — dump iptables rules to stdout
ip6tables-save — dump iptables rules to stdout
iptables-apply - a safer way to update iptables remotely
ufw - program for managing a netfilter firewall
ufw-framework - using the ufw framework
shorewall - Administration tool for Shoreline Firewall (Shorewall)
Network bridges:
bridge - show / manipulate bridge addresses and devices
brctl - ethernet bridge administration
java debugging:
jstack - Prints Java thread stack traces for a Java process, core file, or remote debug server. This command is experimental and unsupported.
jdb - Finds and fixes bugs in Java platform programs.
jlint - java source code lint
does not have a manual page
does have a package in ubuntu (jlint, jlint-doc)
programming tracing:
mtrace - interpret the malloc trace log
memusage - profile memory usage of a program
dmalloc - program used to set the environment for debugging using the dmalloc debugging library.
efence - Electric Fence Malloc Debugger
power management:
powertop - a power consumption and power management diagnosis tool.
turbostat - Report processor frequency and idle statistics
upower - UPower command line tool
General tools (not intended for just one specific utility):
dtrace - Dtrace compatibile user application static probe generation tool.
stap-prep - prepare system for systemtap use
staprun - systemtap runtime
stap - systemtap script translator/driver
perf - Performance analysis tools for Linux
perf-stat - Run a command and gather performance counter statistics
perf-top - System profiling tool.
perf-record - Run a command and record its profile into perf.data
perf-report - Read perf.data (created by perf record) and display the profile
perf-list - List all symbolic event types
sysprof, sysprof-cli - System-wide Linux Profiler
sysdig - the definitive system and process troubleshooting tool
oprofile - a system-wide profiler
opreport - produce symbol or binary image summaries
opannotate - produce source or assembly annotated with profile data
oparchive - produce archive of oprofile data for offline analysis
opgprof - produce gprof-format profile data
pipe performance:
pipemeter - measure speed of data going through a pipe/redirection
pv - monitor the progress of data through a pipe
watchdogs/fault helpers:
catchsegv - Catch segmentation faults in programs
mysql:
mytop - display MySQL server performance info like `top'
sysbench - A modular, cross-platform and multi-threaded benchmark tool.
programming:
cdecl — decode C type declarations
HLint - haskell source code suggestions
splint - A tool for statically checking C programs
DNS:
dlint - Internet Domain Name System (DNS) error checking utility
elf tools:
nm - list symbols from object files
ldd - print shared library dependencies
pldd - display dynamic shared objects linked into a process
ld.so, ld-linux.so* - dynamic linker/loader
objdump - display information from object files.
objcopy - copy and translate object files
ld - The GNU linker
readelf - Displays information about ELF files.
size - list section sizes and total size.
chrpath - change the rpath or runpath in binaries
patchelf - Modify ELF files
database admin:
tora - graphical toolkit for database developers and administrators
does not have a manul page
comes from the package 'tora'
mysql - the MySQL command-line tool
psql - PostgreSQL interactive terminal
sqlite3 - A command line interface for SQLite version 3
realtime:
chrt - manipulate the real-time attributes of a process
hwlatdetect - program to control the kernel hardware latency detection module
latencytop - a tool for developers to visualize system latencies
cyclictest - High resolution test program
load generators:
hackbench - scheduler benchmark/stress test
multi-user:
who - show who is logged on
w - Show who is logged on and what they are doing.
last, lastb - show listing of last logged in users
listing stuff:
lsscsi - list SCSI devices (or hosts) and their attributes
lspci - list all PCI devices
lsusb - list USB devices
lsdev - display information about installed hardware
socklist - display list of open sockets
procinfo - display system statistics gathered from /proc
lshw - list hardware
lscpu - display information about the CPU architecture
lsblk - list block devices
pccardctl - PCMCIA card control utility
lspcmcia - display extended PCMCIA debugging information
nproc - print the number of processing units available
x86info — display x86 CPU diagnostics
dmidecode - DMI table decoder
gui:
icinga - network/systems status monitoring daemon
nagios3 - network/systems status monitoring daemon
ksysguard - KDE System Monitor
gnome-system-monitor — view and control processes
xfce4-taskmanager - a task (system process) manager for Xfce.
procexp - linux process explorer
no package for ubuntu
mrtg - What is MRTG ?
Monit - utility for monitoring services on a Unix system
munin - Munin manpage hub
filesystems:
fsck - check and repair a Linux filesystem
mkfs - build a Linux filesystem
debugfs - ext2/ext3/ext4 file system debugger
dumpe2fs - dump ext2/ext3/ext4 filesystem information
dump - ext2/3/4 filesystem backup
tune2fs - adjust tunable filesystem parameters on ext2/ext3/ext4 filesystems
e2fsck - check a Linux ext2/ext3/ext4 file system
mke2fs - create an ext2/ext3/ext4 filesystem
e2label - Change the label on an ext2/ext3/ext4 filesystem
ext2 - the second extended file system
ext2 - the third extended file system
ext4 - the fourth extended file system
dd - convert and copy a file
e4defrag - online defragmenter for ext4 filesystem
total system info:
inxi - Command line system information script for console and IRC
hardware:
hardinfo - shows hardware information in a GTK+ window
acpi - Shows battery status and other ACPI information
psensor - Temperature monitoring application
sensors - print sensors information
xsensors - display hardware sensor information as a graphical read-out.
memtester - stress test to find memory subsystem faults.
memtest86+ - thorough real-mode memory tester (bootable tool, need to download and boot from it)
nvidia graphics card tools:
nvidia-smi
nvidia-settings
ATI graphics card tools:
fglrxinfo
services:
service - run a System V init script
initctl - init daemon control tool
telinit - change system runlevel
runlevel - output previous and current runlevel
shutdown - bring the system down
reboot, halt, poweroff - reboot or stop the system
systemd, init - systemd system and service manager
update-rc.d - install and remove System-V style init script links
invoke-rc.d - executes System-V style init script actions
Boot-Up Manager - Graphical runlevel configuration tool
security:
chage - change user password expiry information
all round:
glances - A cross-platform curses-based system monitoring tool