-
常用命令
1.1 cpu性能常用命令
top 命令查看系统的实时负载, 包括进程、CPU负载、内存使用
Tasks: 249 total, 2 running(运行状态), 239 sleeping(睡眠状态), 0 stopped(暂停状态), 8 zombie(僵尸状态)
Mem: 2004268K total(物理内存总量), 1917584K used(使用的物理内存量), 88764416 free(空闲的物理内存量), 12922880 buffers(用作内核缓存的物理内存量)
Swap: 1002128K total(交换区总量), 275968K used(使用的交换区量), 726160K free(空闲的交换区量), 583992K cached(缓冲交换区总量)
400%cpu 19%user(用户态进程占用CPU时间百分比,不包含renice值为负的任务占用的CPU的时间) 1%nice(改变过优先级的进程占用CPU的百分比) 26%sys(内核占用CPU时间百分比) 345%idle(空闲CPU时间百分比) 0%iow(等待I/O的CPU时间百分比) 6%irq(CPU硬中断时间百分比) 3%sirq(CPU软中断时间百分比) 0%host
PID(进程id) USER(进程所有者) PR(优先级) NI(正值低优先级,负值高优先级) VIRT(进程使用的虚拟内存总量) RES(进程使用的未被换出的物理内存大小) SHR(共享内存大小) S%CPU %MEM(进程使用的物理内存百分比) TIME+(进程使用CPU总时间) ARGS(进程名)
223 system -3 -3 11G 4.3M 3.5M S 9.3 0.2 13:17.29 android.hardware.graphics.composer@2.1-serviceuptime命令 13:17:22(系统当前时间) up 2:16(系统开机到现在经过了多少时间), 0 users(当前0用户在线), load average: 2.02, 1.77, 1.70(系统1分钟、5分钟、15分钟的CPU负载信息)
1.2 内存性能常用命令
free -h
free命令默认是显示单位kb,可以采用free -m和free -g命令查看,分别表示MB和GB
另外,free -h会自动选择以适合理解的容量单位显示
dumpsys meminfototal:总内存大小。 used:已经使用的内存大小(这里面包含cached和buffers和shared部分)。 free:空闲的内存大小。 shared:进程间共享内存(一般不会用,可以忽略)。 buffers:内存中写完的东西缓存起来,这样快速响应请求,后面数据再定期刷到磁盘上。 cached:内存中读完缓存起来内容占的大小(这部分是为了下次查询时快速返回)。 -/+ buffers/cache看作两部分: -buffers/cache:正在使用的内存大小(注意不是used部分,因为buffers和cached并不是正在使用的,组织和人民需要是它们是可以释放的),其值=used-buffers-cached。 +buffers/cache:可用的内存大小(同理也不是free表示的部分),其值=free+buffers+cached。 Swap: 硬盘上交换分区的使用大小。设计的目的就是当上面提到的+buffers/cache表示的可用内存都已使用完,新的读写请求过来后,会把内存中的部分数据写入磁盘,从而把磁盘的部分空间当做虚拟内存来使用。 <href https://blog.csdn.net/zzhongcy/article/details/106522076> 虚拟内存监控 <href https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/vmstat.html#vmstat> vmstat的语法 vmstat [-V] [-n] [delay [count]] -V表示打印出版本信息; -n表示在周期性循环输出时,输出的头部信息仅显示一次; delay是两次输出之间的延迟时间; count是指按照这个时间间隔统计的次数。 /root$vmstat 5 5 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 6 0 0 27900472 204216 28188356 0 0 0 9 1 2 11 14 75 0 0 9 0 0 27900380 204228 28188360 0 0 0 13 33312 126221 22 20 58 0 0 2 0 0 27900340 204240 28188364 0 0 0 10 32755 125566 22 20 58 0 0 10.2. 字段说明 Procs(进程): r: 运行队列中进程数量 b: 等待IO的进程数量 Memory(内存): swpd: 使用虚拟内存大小 free: 可用内存大小 buff: 用作缓冲的内存大小 cache: 用作缓存的内存大小 Swap: si: 每秒从交换区写到内存的大小 so: 每秒写入交换区的内存大小 IO:(现在的Linux版本块的大小为1024bytes) bi: 每秒读取的块数 bo: 每秒写入的块数 system: in: 每秒中断数,包括时钟中断 cs: 每秒上下文切换数 CPU(以百分比表示) us: 用户进程执行时间(user time) sy: 系统进程执行时间(system time) id: 空闲时间(包括IO等待时间) wa: 等待IO时间
1.3 查看磁盘相关
磁盘剩多少写的快不快可以用df、dd、iotop
du命令用来查看目录或文件所占用磁盘空间的大小。常用选项组合为:du -sh
du常用的选项:
-h:以人类可读的方式显示
-a:显示目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘空间的大小
-s:显示目录占用的磁盘空间大小,不要显示其下子目录和文件占用的磁盘空间大小
-c:显示几个目录或文件占用的磁盘空间大小,还要统计它们的总和
--apparent-size:显示目录或文件自身的大小
-l :统计硬链接占用磁盘空间的大小
-L:统计符号链接所指向的文件占用的磁盘空间大小
du -sh : 查看当前目录总共占的容量。而不单独列出各子项占用的容量du -lh --max-depth=1 : 查看当前目录下一级子文件和子目录占用的磁盘容量。 du -sh * | sort -n 统计当前文件夹(目录)大小,并按文件大小排序 du -sk filename 查看指定文件大小
1.4.查看网络方面
网络太卡找iftop, nethogs
1.Linux网络流量实时监控工具:Nload安装和使用
具体安装方法如下:
cd /soft
wget http://www.roland-riegel.de/nload/nload-0.7.4.tar.gz
tar zxvf nload-0.7.4.tar.gz
cd nload-0.7.4
./configure;make;make install
使用方法:
输入nload,查看所有网卡的流量
输入nload venet0, 查看指定网卡流量
输入nload -u M,显示以MB为单位的流量,也可以改成K
输入nload -h,查看帮助
1.1缺少ncurses包的解决办法
下载安装相应软件包
a)、如果你的系统是RedHat系列:
yum list|grep ncurses
yum -y install ncurses-devel
yum install ncurses-devel
b)、如果你的系统是Ubuntu或Debian:
apt-cache search ncurses
apt-get install libncurses5-dev
再./configure,然后make && make install
2.Linux 下测试网络带宽及查看网络情况常用命令
使用speedtest-cli命令。
2.1,安装speedtest-cli
yum –y install python-pip
pip install speedtest-cli
iostat 命令详解<href https://blog.csdn.net/m369880395/article/details/127789732>
Android设备上系统命令介绍
@@@查看Android设备上的CPU信息命令:
cat /proc/cpuinfo
@@@查看Android设备上的memory信息命令:
cat /proc/meminfo
@@@查看Android设备上的flash分区信息命令:
cat /proc/partitions
@@@查看Android设备上的查看计算机名信息命令:
hostname
@@@查看Android设备上的Linux(Kernel内核)版本信息命令:
cat /proc/version
@@@查看Android设备上的查看环境变量信息命令:
env
free -m # 查看内存使用量和交换区使用量
df -h # 查看各分区使用情况
du -sh <目录名> # 查看指定目录的大小
grep MemTotal /proc/meminfo # 查看内存总量
grep MemFree /proc/meminfo # 查看空闲内存量
uptime # 查看系统运行时间、用户数、负载
cat /proc/loadavg # 查看系统负载
磁盘和分区
mount | column -t # 查看挂接的分区状态
fdisk -l # 查看所有分区
swapon -s # 查看所有交换分区
hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
dmesg | grep IDE # 查看启动时IDE设备检测状况
网络
ifconfig # 查看所有网络接口的属性
iptables -L # 查看防火墙设置
route -n # 查看路由表
netstat -lntp # 查看所有监听端口
netstat -antp # 查看所有已经建立的连接
netstat -s # 查看网络统计信息
进程
ps -ef # 查看所有进程
top # 实时显示进程状态
用户
w # 查看活动用户
id <用户名> # 查看指定用户信息
last # 查看用户登录日志
cut -d: -f1 /etc/passwd # 查看系统所有用户
cut -d: -f1 /etc/group # 查看系统所有组
crontab -l # 查看当前用户的计划任务
服务
chkconfig --list # 列出所有系统服务
chkconfig --list | grep on # 列出所有启动的系统服务
程序
rpm -qa # 查看所有安装的软件包
常用命令整理如下:
查看主板的序列号: dmidecode | grep -i ’serial number’
用硬件检测程序kuduz探测新硬件:service kudzu start ( or restart)
查看CPU信息:cat /proc/cpuinfo [dmesg | grep -i ‘cpu’][dmidecode -t processor]
查看内存信息:cat /proc/meminfo [free -m][vmstat]
查看板卡信息:cat /proc/pci
查看显卡/声卡信息:lspci |grep -i ‘VGA’[dmesg | grep -i ‘VGA’]
查看网卡信息:dmesg | grep -i ‘eth’[cat /etc/sysconfig/hwconf | grep -i eth][lspci | grep -i ‘eth’]
查看PCI信息:lspci (相比cat /proc/pci更直观)
查看USB设备:cat /proc/bus/usb/devices
查看键盘和鼠标:cat /proc/bus/input/devices
查看系统硬盘信息和使用情况:fdisk & disk – l & df
查看各设备的中断请求(IRQ):cat /proc/interrupts
查看系统体系结构:uname -a
查看及启动系统的32位或64位内核模式:isalist –v [isainfo –v][isainfo –b]
dmidecode查看硬件信息,包括bios、cpu、内存等信息
测定当前的显示器刷新频率:/usr/sbin/ffbconfig –rev ?
查看系统配置:/usr/platform/sun4u/sbin/prtdiag –v
查看当前系统中已经应用的补丁:showrev –p
显示当前的运行级别:who –rH
查看当前的bind版本信息:nslookup –class=chaos –q=txt version.bind
dmesg | more 查看硬件信息
lspci 显示外设信息, 如usb,网卡等信息
lsnod 查看已加载的驱动
lshw
psrinfo -v 查看当前处理器的类型和速度(主频)
prtconf -v 打印当前的OBP版本号
iostat –E 查看硬盘物理信息(vendor, RPM, Capacity)
prtvtoc /dev/rdsk/c0t0d0s 查看磁盘的几何参数和分区信息
df –F ufs –o i 显示已经使用和未使用的i-node数目
isalist –v
对于“/proc”中文件可使用文件查看命令浏览其内容,文件中包含系统特定信息:
Dma 主机DMA通道信息
Filesystems 文件系统信息
Interrupts 主机中断信息
Ioprots 主机I/O端口号信息
Version Linux内存版本信息
@@@查看Android设备上的Linux(Kernel内核)版本信息命令:
cat /proc/version
@@@查看Android设备上当前已经加载的设备驱动程序的主设备号:(内核能够识别的所有设备都记录在原码树下的\Documentation/devices.txt文件中)
cat /proc/devices
设备管理是 Linux 中比较基础的知识,与内核的关系也比较密切。随着 Udev 的广泛使用,Linux 发行版的智能程度越来越高,许多 Linux 新用户对 /dev 目录下的东西变得不再熟悉,有时候遇见问题就会抓狂。
Linux 中的设备按照存取方式的不同,可以分为两种:
字符设备:无缓冲且只能顺序存取
块设备:有缓冲且可以随机(乱序)存取,而按照是否对应物理实体,也可以分为两种:
物理设备,对实际存在的物理硬件的抽象。
虚拟设备,不依赖于特定的物理硬件,仅是内核自身提供的某种功能。
无论是哪种设备,在 /dev 目录下都有一个对应的文件(节点),并且每个设备文件都必须有主/次设备号,主设备号相同的设备是同类设备,使用同一个驱动程序(虽然目前的内核允许多个驱动共享一个主设备号,但绝大多数设备依然遵循一个驱动对应一个主设备号的原则)。可以通过 cat /proc/devices 命令查看当前已经加载的设备驱动程序的主设备号。
注意:在 /dev 目录下除了各种设备节点之外还通常还会存在:FIFO管道、Socket、软/硬连接、目录。这些东西并不是设备文件,因此也就没有主/次设备号。
@@@查看当前设备的主次设备号命令:
ls -l /dev
@@@查看Android设备上的相关设备详细信息命令:
cat /system/build.prop
@@@查看/dev/input/下的设备节点对应的是什么设备命令:
cat /proc/bus/input/devices
常用参考网站:https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/iostat.html