| 常用命令 查看内存使用情况:free显示进程信息(包括CPU、内存使用等信息):top、ps查看驱动占用内存:lsmod
 一、查看系统内存free??free命令可以显示当前系统未使用的和已使用的内存大小,还可以显示被内核使用的内存缓冲区
  1.1 说明如下:Mem:内存的使用信息Swap:交换空间的使用信息total:总计物理内存的大小used:已使用物理内存free:可用物理内存shared:多个进程共享的内存总额buffers/cached:缓存缓冲使用物理内存大小available:还可以被应用程序使用的物理内存大小
 1.2 物理内存之间的关系??total = used + free + buffer/cache??avaiable = free + buffer/cache(服务器或者公共云普通用户有部分buffer/cache是用不了的就会有avaiable < free + buffer/cache)
 1.3 free与available的区别??free是未被使用的内存??available是应用程序认为可用的内存
 注意:Linux为了提升读写性能,消耗一部分内存资源作为缓存或者缓冲内存,在内核看来这部分buffer/cache属于已被使用的内存;在应用程序申请内存,而free内存不够时,就会让内核回收buffer和cache来满足应用程序的内存需求。
 1.4 free参数说明??通过free --help查看free的详细命令:
  ??常用命令:free -h
 
  二、查看进程占用内存??top命令可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。通过top命令可以有效的发现系统的缺陷出在哪里,如内存不够、CPU处理能力不够、IO读写过高等。 2.1 参数说明:d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 sq : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子进程 ( dead child process ) 的 CPU time 累积起来s : 安全模式,将交谈式指令取消, 避免潜在的危机i : 不显示任何闲置 (idle) 或无用 (zombie) 的进程n : 更新的次数,完成后将会退出 topb : 批次档模式,搭配 “n” 参数一起使用,可以用来将 top 的结果输出到档案内
 ??在top命令执行过程中可以使用的一些交互命令。这些命令都是单字母的,如果在命令行中使用了-s选项, 其中一些命令可能会被屏蔽。交互命令如下: h:显示帮助画面,给出一些简短的命令总结说明k:终止一个进程i:忽略闲置和僵死进程,这是一个开关式命令q:退出程序r:重新安排一个进程的优先级别f或者F:从当前显示中添加或者删除项目o或者O:改变显示项目的顺序l:切换显示平均负载和启动时间信息m:切换显示内存信息t:切换显示进程和CPU状态信息c:切换显示命令名称和完整命令行M:根据驻留内存大小进行排序P:根据CPU使用百分比大小进行排序T:根据时间/累计时间进行排序w:将当前设置写入~/.toprc文件中
 2.2 直接在终端中输入top指令 第一到第五行的详细说明如下:
  top - 11:32:49 当前系统时间 up 19:18 系统已经运行了19h18min 4 users 共有4个用户为登录状态 load average: 0.00, 0.01, 0.05 系统负载,即任务队列的平均长度,load average后面的三个数字分别表示距离现在一分钟,五分钟,十五分钟的负载情况。 注意:load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。 Tasks: 140total 总进程数 2 running 正在运行的进程数 138 sleeping 睡眠的进程数 0 stopped 停止的进程数 0 zombie 冻结进程数 %Cpu(s): 0.0 us, 用户空间占用CPU百分比(用户态使用CPU占比) 0.6 sy 内核空间占用CPU百分比 (系统态使用CPU占比) 0.0 ni 用做nice加权的进程分配的用户态cpu时间比 99.4 id 空闲的cpu时间比 0.0 wa IO wait ,cpu等待磁盘写入完成时间 0.0 hi Hardware IRQ,硬中断消耗时间 0.0 si Software IRQ,软中断消耗时间 0.7 st 被hypervisor(管理程序,一般为服务器或者虚拟机)偷取时间 KiB Mem : 16265580 total 物理内存总量,单位:Mb 3006752 free 空闲内存总量 3153224 used 使用的物理内存总量 10105604 buff/cache 用作内核缓存的内存量 KiB Swap: 0 total 交换区总量 0 free 空闲交换区总量 0 used 使用的交换区总量 12773304 avail Mem 在不交换的情况下,对启动新应用程序可用内存的估计 top命令第七行是各个进程的监控:
 PID:进程idUSER:进程所有者PR:进程优先级NI : nice值。负值表示高优先级,正值表示低优先级VIRT:进程使用的虚拟内存总量,单位kbRES:进程使用的、未被换出的物理内存大小,单位kbSHR:共享内存大小,单位kbS:进程状态%CPU:上次更新到现在的CPU时间占用百分比%MEM:进程使用的物理内存百分比TIME+:进程使用的CPU时间总计,单位1/100秒COMMAND: 进程名称(命令名/命令行)??此界面显示的并不是所有进程,由于页面显示限制仅仅显示了这几行,我们可以通过top -b -n 1查看系统的所有进程的快照。
 2.3 查看内核占用内存 ??一些参数解释:
 MemTotal: 总内存MemFree: 空闲内存Buffers: 给文件的缓冲大小Cached: 高速缓冲存储器使用的大小SwapCached: 被高速缓冲存储用的交换空间大小Active: 活跃使用中的高速缓冲存储器页面文件大小Inactive: 不经常使用的高速缓冲存储器页面文件大小SwapTotal: 交换空间总大小SwapFree: 空闲交换空间Dirty: 等待被写回到磁盘的大小Writeback: 正在被写回的大小AnonPages: 未映射的页的大小Mapped: 设备和文件映射的大小Slab: 内核数据结构缓存的大小,可减少申请和释放内存带来的消耗SReclaimable: 可收回slab的大小SUnreclaim: 不可收回的slab的大小23204+14164=37368PageTables: 管理内存分页的索引表的大小NFS_Unstable: 不稳定页表的大小VmallocTotal: 虚拟内存大小VmallocUsed: 已经被使用的虚拟内存大小HugePages_Total: 大页面的分配
 三、lsmod查看驱动占用内存
 Module表示模块的名称Size表示模块大小Used 表示依赖的模块个数by表示依赖的模块内容
 |