10.6 监控io性能html
10.7 free命令linux
10.8 ps命令ios
10.9 查看网络状态web
10.10 linux下抓包缓存
扩展tcp三次握手四次挥手 http://www.doc88.com/p-9913773324388.html服务器
tshark几个用法:http://www.aminglinux.com/bbs/thread-995-1-1.html网络
iostat和sar属于同一个软件包,命令被用于监视系统输入输出设备和CPU的使用状况。它的特色是汇报磁盘活动统计状况,同时也会汇报出CPU使用状况。同vmstat同样,iostat也有一个弱点,就是它不能对某个进程进行深刻分析,仅对系统的总体状况进行分析。多线程
[root@adai003 ~]# iostat -x Linux 3.10.0-514.el7.x86_64 (adai003) 2017年07月11日 _x86_64_ (1 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 0.12 0.00 0.24 0.25 0.00 99.39 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util sda 0.00 0.06 0.45 0.30 16.50 4.06 54.39 0.02 31.35 32.52 29.60 6.25 0.47 scd0 0.00 0.00 0.00 0.00 0.00 0.00 8.00 0.00 170.45 170.45 0.00 170.45 0.01
说明: util%:表示io等待占比,正常状况下该值和磁盘读写(r/w)成正比,若是该值很大,读写数值很小则说明磁盘存在问题,系统性能会受影响!并发
iotop命令是一个用来监视磁盘I/O使用情况的top类工具(动态)。iotop具备与top类似的UI,其中包括PID、用户、I/O、进程等相关信息。Linux下的IO统计工具如iostat,nmon等大多数是只能统计到设备的读写状况,若是你想知道每一个进程是如何使用IO的就比较麻烦,使用iotop命令能够很方便的查看。dom
[root@axiang ~]# iotop Total DISK READ : 0.00 B/s | Total DISK WRITE : 0.00 B/s Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 0.00 B/s TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND 2342 be/4 root 0.00 B/s 0.00 B/s 0.00 % 1.00 % [kworker/0:1] 512 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % systemd-logind 1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % systemd -~rialize 21 2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd] ...
iotop经常使用快捷键
free命令能够显示当前系统未使用的和已使用的内存数目,还能够显示被内核使用的内存缓冲区。
经常使用选项:
[root@axiang-02 ~]# free -h total used free shared buff/cache available Mem: 1.8G 577M 918M 8.6M 335M 1.1G Swap: 2.0G 0B 2.0G
可用available=空闲free+缓冲、缓存
内存总大小total=已用used+可用available
buff缓冲和cache缓存区别,所指流向不一样
若是占用swap表明内存不够或者程序致使内存泄漏,须要排查或添加内存
ps命令用于报告当前系统的进程状态。能够搭配kill指令随时中断、删除没必要要的程序。ps命令是最基本同时也是很是强大的进程查看命令,使用该命令能够肯定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是能够经过执行该命令获得的。
[root@adai003 ~]# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.3 125100 3628 ? Ss 10:28 0:01 /usr/lib/systemd/systemd root 2 0.0 0.0 0 0 ? S 10:28 0:00 [kthreadd] ……
[root@axiang ~]# ps aux | grep vmstat root 2430 0.1 0.1 148308 1344 pts/0 T 17:30 0:00 vmstat 1 root 2432 0.0 0.0 112664 976 pts/0 S+ 17:30 0:00 grep --color=auto vmstat
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操做系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。 运行中的进程可能具备如下三种基本状态:
线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程本身不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的所有资源。一个线程能够建立和撤消另外一个线程,同一进程中的多个线程之间能够并发执行。因为线程之间的相互制约,导致线程在运行中呈现出间断性。线程也有就绪、阻塞和运行三种基本状态。每个程序都至少有一个线程,若程序只有一个线程,那就是程序自己。
在单个程序中同时运行多个线程完成不一样的工做,称为多线程。
netstat命令用来查看服务在网络上的通讯状态,端口
常见用法
[root@axiang ~]# netstat -lnp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 921/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1385/master tcp6 0 0 :::22 :::* LISTEN 921/sshd tcp6 0 0 ::1:25 :::* LISTEN 1385/master udp 0 0 127.0.0.1:323 0.0.0.0:* 517/chronyd udp6 0 0 ::1:323 :::* 517/chronyd raw6 0 0 :::58 :::* 7 558/NetworkManager Active UNIX domain sockets (only servers) Proto RefCnt Flags Type State I-Node PID/Program name Path unix 2 [ ACC ] STREAM LISTENING 17374 1385/master private/lmtp unix 2 [ ACC ] STREAM LISTENING 17377 1385/master private/anvil :proto为unix的是系统内的socket文件。 ...
[root@axiang ~]# netstat -an | head Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp 0 52 192.168.83.131:22 192.168.83.1:49690 ESTABLISHED tcp6 0 0 :::22 :::* LISTEN tcp6 0 0 ::1:25 :::* LISTEN udp 0 0 192.168.83.131:36558 61.216.153.107:123 ESTABLISHED udp 0 0 192.168.83.131:55028 85.199.214.100:123 ESTABLISHED ...
[root@axiang ~]# netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}' LISTEN 4 ESTABLISHED 1 //并发数,直接影响服务器资源使用状况
ss命令用来显示处于活动状态的套接字信息。ss命令能够用来获取socket统计信息,它能够显示和netstat相似的内容。但ss的优点在于它可以显示更多更详细的有关TCP和链接状态的信息,并且比netstat更快速更高效,缺点是不会显示进程的名称。
[root@axiang ~]# ss -an Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port nl UNCONN 0 0 0:-192937426 * nl UNCONN 0 0 0:0 * nl UNCONN 0 0 0:-192937426 *
tcpdump命令是一款sniffer工具,它能够打印全部通过网络接口的数据包的头信息,也可使用-w选项将数据包保存到文件中,方便之后分析。
常见用法
[root@axiang ~]# tcpdump -nn -i ens33 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on ens33, link-type EN10MB (Ethernet), capture size 65535 bytes 21:12:01.388269 IP 192.168.83.131.22 > 192.168.83.1.49690: Flags [P.], seq 339706 21:12:01.406543 IP 192.168.83.1.49690 > 192.168.83.131.22: Flags [.], ack 212, wi
查看1.cap文件信息:
[root@axiang-02 ~]# tcpdump -nn -i ens33 -c 5 -w /tmp/1.cap tcpdump: listening on ens33, link-type EN10MB (Ethernet), capture size 65535 bytes 5 packets captured 5 packets received by filter 0 packets dropped by kernel [root@axiang-02 ~]# tcpdump -r /tmp/1.cap reading from file /tmp/1.cap, link-type EN10MB (Ethernet) 12:45:38.564652 IP axiang-02.ssh > 192.168.83.1.50036: Flags [P.], seq 406420592:406420740, ack 1872774135, win 294, length 148 12:45:38.565089 IP 192.168.83.1.50036 > axiang-02.ssh: Flags [.], ack 148, win 254, length 0 12:45:40.715007 IP axiang-02.41813 > 61-216-153-105.HINET-IP.hinet.net.ntp: NTPv4, Client, length 48 12:45:44.496768 IP 192.168.83.1.50036 > axiang-02.ssh: Flags [P.], seq 1:53, ack 148, win 254, length 52 12:45:44.540043 IP axiang-02.ssh > 192.168.83.1.50036: Flags [.], ack 53, win 294, length 0
[root@axiang-02 ~]# yum install -y wireshark
常见用法
tshark -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e "http.request.uri"