系统类命令
查看linux版本
cat /etc/redhat-release
cpu 信息
cat /proc/cpuinfo
显示机器的处理器架构
arch
uname -m
显示内核的版本
cat /proc/version
显示已载入系统的模块
lsmod
查看系统IO
iostat
查看磁盘内存
df -h
查看内存占用
top
显示当前文件下 Top 10 空间占用的文件/目录,
s 表示不显示每个子目录或文件的大小
h 表示用更加自然的方式显示(比如 K/M/G 这样)
du -sh * | sort -nr | head
内存占用
free -m
内存占用
**top**
shift+e 切换占用单位
top - 11:51:09 up 3 days, 21:50, 3 users, load average: 0.00, 0.01, 0.05
Tasks: 111 total, 2 running, 109 sleeping, 0 stopped,0 zombie
%Cpu(s): 0.3 us,0.0 sy, 0.0 ni, 99.7 id, 0.0 wa,0.0 hi, 0.0 si, 0.0 st
GiB Mem : 1.8 total, 0.1 free, 1.0 used, 0.7 buff/cache
GiB Swap: 2.0 total, 2.0 free, 0.0 used. 0.6 avail Mem
第一行:系统时间、运行时间、登录终端数、系统负载
第二行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。
第三行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。99.7 id意味着99.7%的cpu空闲
第四行:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量。
第五行:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量
怎么查看某个Java进程里面占用CPU最高的一个线程具体信息?
获取进程中占用CPU最高的线程,计为n。
使用top top -H -p pid,肉眼观察之
使用ps ps -mo spid,lwp,stime,time,%cpu -p pid
将线程号转化成十六进制printf 0x%x n
使用jstack找到相应进程,打印线程后的100行信息 jstack -l pid| grep spid -A 100
统计每种网络状态的数量
netstat -ant | awk '{print $6}' | sort | uniq -c | sort -n -k 1 -r
首先使用netstat查看列表,使用’awk’截取第六列,使用uniq进行统计,并对统计结果排序。当然,也可以这样。
netstat -ant | awk '{arr[$6]++}END{for(i in arr){print arr[i]" "i }}' | sort -n -k 1 -r
这和“分析apache日志,给出当日访问ip的降序列表”是一样的问题。