linux基础操作命令—负载和内存的命令

一、系统监测有关的命令
     **1、 top :
               (1)命令功能:top 命令实时显示进程的状态。默认状态显示的是cpu密集型的进程,并且每5秒钟更新一次。你可以通过PID的数字大小,age (newest first), time (cumulative time),resident memory usage(常驻内存使用)以及进程从启动后占用cpu的时间。
               (2)命令实例: 
                                  a、t: 用于是否显示总的统计数据
                                  b、m:用户是否显示内存的信息
                                  c、$ top -b:
                                        top显示的时候,将每一次显示的结果都打印出来,不会将上一次的结果给冲掉。
                                  d、$ top -p pid:
                                         显示某个进程的信息(多线程的情况:$  top  -p pid1 , pid2 ,pid3)
                                  e、$ top -u usename:
                                       显示某个用户的进程信息
                                   f、$ top -H:
                                       显示线程的信息,而不是进程的信息
                                  g、$ top -d ntime:
                                         设置刷屏的时间(单位为s)
    **2、vmstat
               (1)命令功能:
                                  用来获得有关进程、虚存、页面交换空间及 CPU活动的信息。这些信息反映了系统的负载情况 (相比top能够看到整个机器的负载情况,而不单单是各个进程的负载情况)
               (2)命令参数: 
                                  通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数;
               (3)显示的信息: 
r 表示运行队列(就是说多少个进程真的分配到CPU),如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高。
b 表示阻塞的进程;
swpd 虚拟内存已使用的大小,如果大于0,表示机器物理内存不足了,如果不是程序内存泄露的原因,那么可能是升级内存了或者把耗内存的任务迁移到其他机器。
free   空闲的物理内存的大小;。
buff   Linux/Unix系统是用来存储,目录里面有什么内容,权限等的缓存;
cache 直接用来记忆我们打开的文件,给文件做缓冲,把空闲的物理内存的一部分拿来做文件和目录的缓存,是为了提高 程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。
si  每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。
so  每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。
bi  块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是1024byte,磁盘写入速度差不多140M每秒
bo 块设备每秒发送的块数量,例如我们读取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO过于频繁,需要调整。
in 每秒CPU的中断次数,包括时间中断
cs 每秒上下文切换次数,例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好。
us 用户CPU时间。
sy 系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。
id  空闲 CPU时间,一般来说,id + us + sy = 100,一般id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率。
wt 等待IO CPU时间。
    **3、 iostat :
                 (1)命令功能:
                                   用于输出CPU和磁盘I/O相关的统计信息,用于监控系统设备的IO负载情况
                 (2)命令格式:
                                   iostat [ 选项 ] [ <时间间隔> [ <次数> ]]
                 (3)命令参数:
                                   -c:只显示系统CPU统计信息,即单独输出avg-cpu结果,不包括device结果
                                   -d:单独输出Device结果,不包括cpu结果
                              -k/-m:输出结果以kB/mB为单位,而不是以扇区数为单位
                                   -x::输出更详细的io设备统计信息
                 interval/count:每次输出间隔时间,count表示输出次数,不带count表示循环输出
      *4、 sar:
                  (1)命令功能:
                                    是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。
                  (2)命令格式:
                                      sar [options] [-A] [-o file] t [n]
                                     t为采样间隔,n为采样次数,默认值是1;
                                     -o file表示将命令结果以二进制格式存放在文件中,file 是文件名。
                                     options 为命令行选项;
                    (3)选项:                                   
                                  -A:所有报告的总和
                                  -u:输出CPU使用情况的统计信息
                                  -v:输出inode、文件和其他内核表的统计信息
                                  -d:输出每一个块设备的活动信息
                                   -r:输出内存和交换空间的统计信息
                                  -b:显示I/O和传送速率的统计信息
                                  -a:文件读写情况
                                  -c:输出进程统计信息,每秒创建的进程数
                                 -R:输出内存页面的统计信息
                                  -y:终端设备活动情况
                                 -w:输出系统交换活动信息
      *5、 watch
                   (1)命令功能:实时监控每一条命令执行的结果动态变化。
 二、 内存有关的命令
    **1、valgrind 内存泄漏检测工具:
                     (1)命令工具:
                          a、memcheck:检查程序中的内存问题,如泄漏、越界、非法指针等。
                          b、callgrind:检测程序代码的运行时间和调用过程,以及分析程序性能。
                          c、cachegrind:分析CPU的cache命中率、丢失率,用于进行代码优化。
                          d、helgrind:用于检查多线程程序的竞态条件。
                          e、massif:堆栈分析器,指示程序中使用了多少堆内存等信息
                       这几个工具的使用是通过命令:valgrand --tool=name 程序名来分别调用的,当不指定tool参数时默认是 --tool=memcheck
                     (2)详解命令工具:
                             memcheck:最常用的工具,用来检测程序中出现的内存问题,所有对内存的读写都会被检测到,一切对malloc、free、new、delete的调用都会被捕获。
                             它能检测以下问题:
                            a、对未初始化内存的使用;
                            b、读/写释放后的内存块;
                            c、读/写超出malloc分配的内存块;
                            d、读/写不适当的栈中内存块;
                            e、内存泄漏,指向一块内存的指针永远丢失;
                            f、不正确的malloc/free或new/delete匹配;
                           g、memcpy()相关函数中的dst和src指针重叠。
     *2、slabtop:
                    (1)命令功能:
                          Linux内核需要为临时对象如任务或者设备结构和节点分配内存,缓存分配器管理着这些类型对象的缓存。现代Linux内核部署了该缓存分配器以持有缓存,称之为片。不同类型的片缓存由片分配器维护。该命令显示了实时内核片缓存信息。
      3、free:
                     (1)命令功能:
                               用于显示内存状态。
                               显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。
                      (2)命令实例:
                                a、free:显示内存使用情况
                                b、free -t:以总和的形式显示内存的使用信息
                                c、free -s 10周期性的查询内存使用信息
 三、其他常用命令
  **1、ulimit :
                         (1)命令功能:
                                           显示(或设置)用户可以使用的资源的限制(limit),这限制分为软限制(当前限制)和硬限制(上限),其中硬限制是软限制的上限值,应用程序在运行过程中使用的系统资源不超过相应的软限制,任何的超越都导致进程的终止
                         (2)命令实例:
                                    a、ulimit -u :查看进程上限
   ** 2、nm :
                         (1)命令功能:
                                           主要是用来列出某些文件中的符号(说白了就是一些函数和全局变量等)。
  **3、ldd :
                         (1)命令功能:
                                          ldd本身不是一个程序,而仅是一个shell脚本:ldd可以列出一个程序所需要得动态链接库
 ** 4、who:
                         (1)命令功能:
                                            显示关于当前在本地系统上的所有用户的信息。显示以下内容:登录名、tty、登录日期和时间。输入whoami 显示您的登录名、tty、您登录的日期和时间。如果用户是从一个远程机器登录的,那么该机器的主机名也会被显示出来。
                                             who 命令也能显示自从线路活动发生以来经过的时间、命令解释器(shell)的进程标识、登录、注销、 重新启动和系统时钟的变化,还能显示由初始化进程生成的其它进程。
 **5、 which      
                         (1)命令功能:
                                            which指令会在环境变量$PATH设置的目录里查找符合条件的文件。
 **6、 uname    
                        (1)命令功能:                                       
                                            uname命令用于显示系统信息;uname可显示电脑以及操作系统的相关信息。
 **7、 man  
                         (1)命令功能:
                                            提供了丰富的帮助手册,当你需要查看某个命令的参数时不必到处上网查找,只要man一下即可。          
 **8、 objdump
                         (1)命令功能:
                                            是用查看目标文件或者可执行的目标文件的构成的gcc工具。               
 **9、 readelf    
                          (1)命令功能:
                                            用来显示一个或者多个elf格式的目标文件的信息

  10、 ipcs        
                           (1)命令功能:
                                            用于报告Linux中进程间通信设施的状态,显示的信息包括消息列表、共享内存和信号量的信息

  11、 mail      
                            (1)命令功能:
                                             命令行的电子邮件发送和接收工具。操作的界面不像elm或pine那么容易使用,但功能非常完整。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值