Linux关机,重启# 关机shutdown-hnow# 重启shutdown-rnow查看系统,CPU信息# 查看系统内核信息uname-a# 查看系统内核版本cat/proc/version# 查看当前用户环境变量envcat/proc/cpuinfo# 查看有几个逻辑cpu, 包括cpu型号cat/proc/cpuinfo|grepname|cut-f2-d:|uniq-c# 查看有几颗cpu,每颗分别是几核cat/proc/cpuinfo|grepphysical|uniq-c# 查看当前CPU运行在32bit还是64bit模式下, 如果是运行在32bit下也不代表CPU不支持64bitgetconf LONG_BIT# 结果大于0, 说明支持64bit计算. lm指long mode, 支持lm则是64bitcat/proc/cpuinfo|grepflags|grep lm |wc-l建立软连接ln-s/usr/local/jdk1.8/ jdkrpm相关# 查看是否通过rpm安装了该软件rpm-qa|grep软件名nslookup,查看域名路由表nslookupgoogle.comlast, 最近登录信息列表# 最近登录的3个账号last-n3查看什么进程使用了该端口lsof-i:portiptables# 查看iptables状态serviceiptables status# 要封停一个ipiptables-IINPUT-s***.***.***.***-jDROP# 要解封一个IP使用下面这条命令iptables-DINPUT-s***.***.***.***-jDROP 备注: 参数-I是表示Insert添加-D表示Delete删除。后面跟的是规则INPUT表示入站***.***.***.***表示要封停的IPDROP表示放弃连接。#开启9090端口的访问/sbin/iptables-IINPUT-ptcp--dport9090-jACCEPT# 防火墙开启、关闭、重启/etc/init.d/iptables status /etc/init.d/iptables start /etc/init.d/iptables stop /etc/init.d/iptables restart跟踪网络路由路径# traceroute默认使用udp方式, 如果是-I则改成icmp方式traceroute-Iwww.baidu.com# 从ttl第3跳跟踪traceroute-M3www.baidu.com# 加上端口跟踪traceroute-p8080192.168.25.11sar,查看网络吞吐状态# sar命令在这里可以查看网络设备的吞吐率。在排查性能问题时可以通过网络设备的吞吐量判断网络设备是否已经饱和sar-nDEV1## sar命令在这里用于查看TCP连接状态其中包括# active/s每秒本地发起的TCP连接数既通过connect调用创建的TCP连接# passive/s每秒远程发起的TCP连接数即通过accept调用创建的TCP连接# retrans/s每秒TCP重传数量# TCP连接数可以用来判断性能问题是否由于建立了过多的连接进一步可以判断是主动发起的连接还是被动接受的连接。TCP重传可能是因为网络环境恶劣或者服务器压力过大导致丢包sar-nTCP,ETCP1vmstat, 给定时间监控CPU使用率, 内存使用, 虚拟内存交互, IO读写# 2表示每2秒采集一次状态信息, 1表示只采集一次(忽略既是一直采集)vmstat21eg: r b swpdfreebuff cache si so bi boincs us syidwar 表示运行队列(就是说多少个进程真的分配到CPU)测试的服务器目前CPU比较空闲没什么程序在跑当这个值超过了CPU数目就会出现CPU瓶颈了。这个也和top的负载有关系一般负载超过了3就比较高超过了5就高超过了10就不正常了服务器的状态很危险。top的负载类似每秒的运行队列。如果运行队列过大表示你的CPU很繁忙一般会造成CPU使用率很高。b 表示阻塞的进程进程阻塞。swpd 虚拟内存已使用的大小如果大于0表示你的机器物理内存不足了如果不是程序内存泄露的原因那么你该升级内存了或者把耗内存的任务迁移到其他机器。free 空闲的物理内存的大小。buff Linux/Unix系统是用来存储目录里面有什么内容权限等的缓存本机大概占用300多Mcache cache直接用来记忆我们打开的文件,给文件做缓冲我本机大概占用300多M(这里是Linux/Unix的聪明之处把空闲的物理内存的一部分拿来做文件和目录的缓存是为了提高 程序执行的性能当程序使用内存时buffer/cached会很快地被使用。)si 每秒从磁盘读入虚拟内存的大小如果这个值大于0表示物理内存不够用或者内存泄露了要查找耗内存进程解决掉。我的机器内存充裕一切正常。so 每秒虚拟内存写入磁盘的大小如果这个值大于0同上。bi 块设备每秒接收的块数量这里的块设备是指系统上所有的磁盘和其他块设备默认块大小是1024bytebo 块设备每秒发送的块数量例如我们读取文件bo就要大于0。bi和bo一般都要接近0不然就是IO过于频繁需要调整。in 每秒CPU的中断次数包括时间中断cs 每秒上下文切换次数例如我们调用系统函数就要进行上下文切换线程的切换也要进程上下文切换这个值要越小越好太大了要考虑调低线程或者进程的数目,例如在apache和nginx这种web服务器中我们一般做性能测试时会进行几千并发甚至几万并发的测试选择web服务器的进程可以由进程或者线程的峰值一直下调压测直到cs到一个比较小的值这个进程和线程数就是比较合适的值了。系统调用也是每次调用系统函数我们的代码就会进入内核空间导致上下文切换这个是很耗资源也要尽量避免频繁调用系统函数。上下文切换次数过多表示你的CPU大部分浪费在上下文切换导致CPU干正经事的时间少了CPU没有充分利用是不可取的。us 用户CPU时间我曾经在一个做加密解密很频繁的服务器上可以看到us接近100,r运行队列达到80(机器在做压力测试性能表现不佳)。sy 系统CPU时间如果太高表示系统调用时间长例如是IO操作频繁。id 空闲 CPU时间一般来说id us sy 100,一般我认为id是空闲CPU使用率us是用户CPU使用率sy是系统CPU使用率。wt 等待IO CPU时间。