liunx性能监控基本命令
本文采用Centos7,其他系统可能有命令不存在等情况
-
系统启动事件 uptime
-
内核日志 dmesg -T| tail
-
进程状态 mpstat -P ALL 1 2 (主要看usr和iowait)
-
内存情况 vmstat 1 10(主要看free、buff、si、so)
-
高使用进程 pidstat 1 3 (主要是cpu占用率高的)
-
IO状态 iostat -xz 1 3
-
内存 free -h
-
网络 sar -n DEV 1 2
-
TCP状态 sar -n TCP,ETCP 1 3(active,passive,retrans)
-
显示内核缓存信息 slabtop
top命令详细参数:
PID:进程ID
user:进程归属用户
PR:优先级级别
NI:优先级值 越低越高
VIRT:进程使用的虚拟内存
RES:进程使用的物理内存
SHR:共享内存
S:进程状态
CUP:进程使用CPU率
MEM:进程使用内存率
TIME:进程使用CPU的时间
COMMAND:进程名称
查看CPU使用最高的进程 n 4
还原 n 0
查看指定端口号的进程
top -H -p pid
ps命令
ps -ef :
ps -aux:
netstat 命令
netstat -anp
tcpdump命令
linux上可用来抓包
lsof命令
一般用来查询端口号对应的进程信息
GDB调试工具
本文采用Centos7,使用GDB调试C代码,其他代码可能存在无法调试等情况
安装 yum install gdb
进入调试模式:gdb 文件
运行文件命令:run 或者 r
退出gdb调试命令:quit
查看程序文件命令:list
打断点命令:break 或者 b
查看断点等:info
清除断点 d 断点号
执行下一步:next 或者 n
继续运行到指定位置 until 或者 u 行号
打印变量信息:print 或者 p
变量名始终显示:display 变量名
进入调用函数:step 或者 s
继续运行 continu 或者 n
使用shell命令执行终端命令
gdb开启日志:set logging on
观察变量是否变化:watchpoint *地址参数
core文件
先用 ulimit命令修改core参数 ulimit -c unlimited
执行gdb 文件 core文件
调试正在运行的程序
修改文件变量:set var 变量 = 值