系统内存-cpu-gpu常用命令

  1. 常用命令
    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-service

     uptime命令
     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 meminfo

     total:总内存大小。
     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

在Python中,你可以使用第三方库来检测系统资源的使用情况,包括内存GPUCPU占用。以下是一些常用的库和工具: 1. `psutil`:这是一个跨平台库,可以用来获取系统运行的进程和系统利用率(包括CPU内存、磁盘、网络等)的信息。 2. `GPUtil`:这是一个用于检测NVIDIA GPU状态的Python库,可以显示当前GPU内存CPU占用。 3. `pynvml`:这个库是NVIDIA Management Library的Python封装,提供了访问NVIDIA GPU设备状态的接口。 下面是一个简单的示例,展示如何使用这些库来获取系统资源的占用情况: ```python import psutil import GPUtil # 获取CPU占用率 cpu_usage = psutil.cpu_percent(interval=1) # 获取内存使用情况 memory_usage = psutil.virtual_memory() memory_total = memory_usage.total memory_used = memory_usage.used memory_free = memory_usage.free # 获取GPU使用情况 gpus = GPUtil.getGPUs() for gpu in gpus: gpu_name = gpu.name gpu_memory_used = gpu.memoryUsed gpu_memory_total = gpu.memoryTotal gpu负荷 = gpu.load*100 # 获取特定软件的内存占用 # 注意:这通常需要特定的方法,可能需要结合操作系统命令 # 例如,在Windows系统中,你可以使用以下代码 # 请确保你知道要检测的进程名称 proc_name = 'process.exe' for proc in psutil.process_iter(['pid', 'name']): if proc.info['name'] == proc_name: pid = proc.info['pid'] mem_info = psutil.Process(pid).memory_info() mem_usage = mem_info.rss break # 输出结果 print(f"CPU Usage: {cpu_usage}%") print(f"Total Memory: {memory_total / (1024**3)} GB") print(f"Used Memory: {memory_used / (1024**3)} GB") print(f"Free Memory: {memory_free / (1024**3)} GB") for gpu in gpus: print(f"GPU: {gpu_name}") print(f"Memory Used: {gpu_memory_used / (1024**2)} MB") print(f"Memory Total: {gpu_memory_total / (1024**2)} MB") print(f"Load: {gpu负荷}%") ``` 请注意,`GPUtil`和`pynvml`通常只适用于NVIDIA的GPU,如果你使用的是AMD或Intel的GPU,可能需要寻找其他特定的库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值