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、付费专栏及课程。

余额充值