精华内容
下载资源
问答
  • Linux系统命令 - 查看内存使用情况

    万次阅读 多人点赞 2020-04-29 23:55:08
    一、 查看内存使用情况Linux系统中,大部分操作都通过命令行来完成,因为大部分情况下不开启图形界面。 在服务器环境,则只能通过shell执行操作。 下面介绍查看内存使用情况的相关命令。 包括物理内存(RAM)和交换...

    一、 查看内存使用情况

    在Linux系统中,大部分操作都通过命令行来完成,因为大部分情况下不开启图形界面。
    在服务器环境,则只能通过shell执行操作。
    下面介绍查看内存使用情况的相关命令。 包括物理内存(RAM)和交换内存(swap)。

    我们经常需要检查服务器的内存使用情况,以及每个进程占用的内存,避免发生资源短缺进而影响用户体验。
    对于网站和Web服务,必须具有足够的内存才能处理客户端请求。 如果内存不足,在请求高峰时就会变得缓慢,拥堵,甚至服务崩溃。
    当然桌面系统也是同样的道理。

    1. 使用 free 命令

    free 命令是Linux系统中最简单和最常用的内存查看命令, 示例如下:

    
    $ free -m
                  total        used        free      shared  buff/cache   available
    Mem:           7822         321         324         377        7175        6795
    Swap:          4096           0        4095
    
    
    $ free -h
                  total        used        free      shared  buff/cache   available
    Mem:           7.6G        322M        324M        377M        7.0G        6.6G
    Swap:          4.0G        724K        4.0G
    
    

    其中, -m 选项是以MB为单位来展示内存使用信息; -h 选项则是以人类(human)可读的单位来展示。

    上面的示例中, Mem: 这一行:

    • total 表示总共有 7822MB 的物理内存(RAM),即7.6G
    • used 表示物理内存的使用量,大约是 322M
    • free 表示空闲内存;
    • shared 表示共享内存?;
    • buff/cache 表示缓存和缓冲内存量; Linux 系统会将很多东西缓存起来以提高性能,这部分内存可以在必要时进行释放,给其他程序使用。
    • available 表示可用内存;

    输出结果很容易理解。 Swap 这一行表示交换内存,从示例中的数字可以看到,基本上没使用到交换内存。

    2. 查看 /proc/meminfo

    另一种方法是读取 /proc/meminfo 文件。 我们知道, /proc 目录下都是虚拟文件,包含内核以及操作系统相关的动态信息。

    $ cat /proc/meminfo
    MemTotal:        8010408 kB
    MemFree:          323424 kB
    MemAvailable:    6956280 kB
    Buffers:          719620 kB
    Cached:          5817644 kB
    SwapCached:          132 kB
    Active:          5415824 kB
    Inactive:        1369528 kB
    Active(anon):     385660 kB
    Inactive(anon):   249292 kB
    Active(file):    5030164 kB
    Inactive(file):  1120236 kB
    Unevictable:           0 kB
    Mlocked:               0 kB
    SwapTotal:       4194304 kB
    SwapFree:        4193580 kB
    Dirty:                60 kB
    Writeback:             0 kB
    AnonPages:        247888 kB
    Mapped:            61728 kB
    Shmem:            386864 kB
    Slab:             818320 kB
    SReclaimable:     788436 kB
    SUnreclaim:        29884 kB
    KernelStack:        2848 kB
    PageTables:         5780 kB
    NFS_Unstable:          0 kB
    Bounce:                0 kB
    WritebackTmp:          0 kB
    CommitLimit:     8199508 kB
    Committed_AS:     942596 kB
    VmallocTotal:   34359738367 kB
    VmallocUsed:       22528 kB
    VmallocChunk:   34359707388 kB
    HardwareCorrupted:     0 kB
    AnonHugePages:     88064 kB
    HugePages_Total:       0
    HugePages_Free:        0
    HugePages_Rsvd:        0
    HugePages_Surp:        0
    Hugepagesize:       2048 kB
    DirectMap4k:      176000 kB
    DirectMap2M:     6115328 kB
    DirectMap1G:     4194304 kB
    

    重点关注这些数据:

    • MemTotal, 总内存
    • MemFree, 空闲内存
    • MemAvailable, 可用内存
    • Buffers, 缓冲
    • Cached, 缓存
    • SwapTotal, 交换内存
    • SwapFree, 空闲交换内存

    提供的信息和 free 命令看到的差不多。

    3. 使用 vmstat 命令

    使用 vmstat -s 命令和选项, 可以对内存使用情况进行统计, 类似于 /proc/meminfo

    示例如下:

    $ vmstat -s
          8010408 K total memory
           344016 K used memory
          5444384 K active memory
          1380052 K inactive memory
           283468 K free memory
           719668 K buffer memory
          6663256 K swap cache
          4194304 K total swap
              724 K used swap
          4193580 K free swap
        132859985 non-nice user cpu ticks
            29816 nice user cpu ticks
         37600986 system cpu ticks
       6643195204 idle cpu ticks
          2721822 IO-wait cpu ticks
                0 IRQ cpu ticks
           592418 softirq cpu ticks
                0 stolen cpu ticks
         13092214 pages paged in
        293257816 pages paged out
                8 pages swapped in
             1365 pages swapped out
       3396492150 interrupts
       1327657196 CPU context switches
       1548248091 boot time
          8811556 forks
    
    

    最前面的几行,显示了内存总量,使用量,以及空闲内存等信息。

    4. 使用 top 命令

    top 命令一般用于查看进程的CPU和内存使用情况;当然也会报告内存总量,以及内存使用情况,所以可用来监控物理内存的使用情况。
    在输出信息的顶部展示了汇总信息。

    示例输出:

    top - 15:20:30 up  6:57,  5 users,  load average: 0.64, 0.44, 0.33
    Tasks: 265 total,   1 running, 263 sleeping,   0 stopped,   1 zombie
    %Cpu(s):  7.8 us,  2.4 sy,  0.0 ni, 88.9 id,  0.9 wa,  0.0 hi,  0.0 si,  0.0 st
    KiB Mem:   8167848 total,  6642360 used,  1525488 free,  1026876 buffers
    KiB Swap:  1998844 total,        0 used,  1998844 free,  2138148 cached
    
      PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND                                                                                 
     2986 enlighte  20   0  584m  42m  26m S  14.3  0.5   0:44.27 yakuake                                                                                 
     1305 root      20   0  448m  68m  39m S   5.0  0.9   3:33.98 Xorg                                                                                    
     7701 enlighte  20   0  424m  17m  10m S   4.0  0.2   0:00.12 kio_thumbnail
    

    各种操作系统提供的参数略有不同,一般来说都可以根据CPU和内存来排序。

    例如:

    # CentOS
    top -o %MEM
    top -o %CPU
    
    # mac
    top -o mem
    top -o cpu
    

    碰到不清楚的,请使用 top -h 查看帮助信息。

    重点关注顶部的 KiB MemKiB Swap 这两行。 表示内存的总量、使用量,以及可用量。
    buffer 和 cache 部分,和 free 命令展示的差不多。

    5. htop 命令

    top 命令类似, 但 htop 还展示了其他的各种信息, 而且支持彩色显示。

    在这里插入图片描述

    顶部的消息显示了CPU使用率, 以及RAM和交换内存的使用情况。

    如果没安装,可以使用类似的命令:

    yum install htop -y

    二、 查看物理内存信息

    想要查看物理内存的硬件信息,可以使用 demidecode 命令。
    这个命令会输出物理内存相关的信息。

    $ dmidecode -t 17
    
    # dmidecode 3.0
    Getting SMBIOS data from sysfs.
    SMBIOS 2.8 present.
    
    Handle 0x1100, DMI type 17, 40 bytes
    Memory Device
    	Array Handle: 0x1000
    	Error Information Handle: Not Provided
    	Total Width: Unknown
    	Data Width: Unknown
    	Size: 8192 MB
    	Form Factor: DIMM
    	Set: None
    	Locator: DIMM 0
    	Bank Locator: Not Specified
    	Type: RAM
    	Type Detail: Other
    	Speed: Unknown
    	Manufacturer: Alibaba Cloud
    	Serial Number: Not Specified
    	Asset Tag: Not Specified
    	Part Number: Not Specified
    	Rank: Unknown
    	Configured Clock Speed: Unknown
    	Minimum Voltage: Unknown
    	Maximum Voltage: Unknown
    	Configured Voltage: Unknown
    

    dmidecode -t 17 展示的信息包括 内存大小, 类型,带宽等信息。 当然,因为示例中使用的是虚拟机,所以有的信息是不可用的。

    如果不加 -t 参数,则展示所有类型的硬件信息。 也可以指定其他 -t 参数来查看对应的硬件信息。

    小结

    本文介绍的命令都可以在shell终端上执行,不需要图形界面来展示。
    如果使用带有图形界面的Linux桌面系统,则使用图形工具会更直观。 一般来说图形桌面都会提供对应的系统监控工具。 输出容易理解的 cpu, 物理内存, 交换内存, 网络带宽等资源的使用信息。

    相关链接

    展开全文
  • Linux查看内存使用情况方法总结

    千次阅读 2018-12-28 17:41:39
    在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要。在 CentOS 中,可以通过 top 命令来查看 CPU 使用状况。运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话...

    在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要。在 CentOS 中,可以通过 top 命令来查看 CPU 使用状况。运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式 -- 用基于 top 的命令,可以控制显示方式等等。退出 top 的命令为 q (在 top 运行中敲 q 键一次)。

    top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器

      可以直接使用top命令后,查看%MEM的内容。可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令:
      $ top -u oracle

    内容解释:

      PID:进程的ID
      USER:进程所有者
      PR:进程的优先级别,越小越优先被执行
      NInice:值
      VIRT:进程占用的虚拟内存
      RES:进程占用的物理内存
      SHR:进程使用的共享内存
      S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
      %CPU:进程占用CPU的使用率
      %MEM:进程使用的物理内存和总内存的百分比
      TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
      COMMAND:进程启动命令名称

      操作实例:

      在命令行中输入 “top”

      即可启动 top

      top 的全屏对话模式可分为3部分:系统信息栏、命令输入栏、进程列表栏。

      第一部分 -- 最上部的 系统信息栏 :

      第一行(top):

        “00:11:04”为系统当前时刻;

        “3:35”为系统启动后到现在的运作时间;

        “2 users”为当前登录到系统的用户,更确切的说是登录到用户的终端数 -- 同一个用户同一时间对系统多个终端的连接将被视为多个用户连接到系统,这里的用户数也将表现为终端的数目;

        “load average”为当前系统负载的平均值,后面的三个值分别为1分钟前、5分钟前、15分钟前进程的平均数,一般的可以认为这个数值超过 CPU 数目时,CPU 将比较吃力的负载当前系统所包含的进程;

      第二行(Tasks):

        “59 total”为当前系统进程总数;

        “1 running”为当前运行中的进程数;

        “58 sleeping”为当前处于等待状态中的进程数;

        “0 stoped”为被停止的系统进程数;

        “0 zombie”为被复原的进程数;

      第三行(Cpus):

        分别表示了 CPU 当前的使用率;

      第四行(Mem):

        分别表示了内存总量、当前使用量、空闲内存量、以及缓冲使用中的内存量;

      第五行(Swap):

        表示类别同第四行(Mem),但此处反映着交换分区(Swap)的使用情况。通常,交换分区(Swap)被频繁使用的情况,将被视作物理内存不足而造成的。

      第二部分 -- 中间部分的内部命令提示栏:

      top 运行中可以通过 top 的内部命令对进程的显示方式进行控制。内部命令如下表:

      s

      - 改变画面更新频率

      l - 关闭或开启第一部分第一行 top 信息的表示

      t - 关闭或开启第一部分第二行 Tasks 和第三行 Cpus 信息的表示

      m - 关闭或开启第一部分第四行 Mem 和 第五行 Swap 信息的表示

      N - 以 PID 的大小的顺序排列表示进程列表(第三部分后述)

      P - 以 CPU 占用率大小的顺序排列进程列表 (第三部分后述)

      M - 以内存占用率大小的顺序排列进程列表 (第三部分后述)

      h - 显示帮助

      n - 设置在进程列表所显示进程的数量

      q - 退出 top

      s -

      改变画面更新周期

      第三部分 -- 最下部分的进程列表栏:

      以 PID 区分的进程列表将根据所设定的画面更新时间定期的更新。通过 top 内部命令可以控制此处的显示方式

    pmap

    可以根据进程查看进程相关信息占用的内存情况,(进程号可以通过ps查看)如下所示:
      $ pmap -d 5647

     

    ps

      如下例所示:
      $ ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid'  其中rsz是是实际内存
      $ ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | grep oracle |  sort -nrk

      其中rsz为实际内存,上例实现按内存排序,由大到小

    在Linux下查看内存我们一般用free命令:
    [root@scs-2 tmp]# free
                 total       used       free     shared    buffers     cached
    Mem:       3266180    3250004      16176          0     110652    2668236
    -/+ buffers/cache:     471116    2795064
    Swap:      2048276      80160    1968116

    下面是对这些数值的解释:
    total:总计物理内存的大小。
    used:已使用多大。
    free:可用有多少。
    Shared:多个进程共享的内存总额。
    Buffers/cached:磁盘缓存的大小。
    第三行(-/+ buffers/cached):
    used:已使用多大。
    free:可用有多少。
    第四行就不多解释了。
    区别:第二行(mem)的used/free与第三行(-/+ buffers/cache) used/free的区别。 这两个的区别在于使用的角度来看,第一行是从OS的角度来看,因为对于OS,buffers/cached 都是属于被使用,所以他的可用内存是16176KB,已用内存是3250004KB,其中包括,内核(OS)使用+Application(X, oracle,etc)使用的+buffers+cached.
    第三行所指的是从应用程序角度来看,对于应用程序来说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。
    所以从应用程序的角度来说,可用内存=系统free memory+buffers+cached。
    如上例:
    2795064=16176+110652+2668236

    接下来解释什么时候内存会被交换,以及按什么方交换。 当可用内存少于额定值的时候,就会开会进行交换。
    如何看额定值:
    cat /proc/meminfo

    [root@scs-2 tmp]# cat /proc/meminfo
    MemTotal:      3266180 kB
    MemFree:         17456 kB
    Buffers:        111328 kB
    Cached:        2664024 kB
    SwapCached:          0 kB
    Active:         467236 kB
    Inactive:      2644928 kB
    HighTotal:           0 kB
    HighFree:            0 kB
    LowTotal:      3266180 kB
    LowFree:         17456 kB
    SwapTotal:     2048276 kB
    SwapFree:      1968116 kB
    Dirty:               8 kB
    Writeback:           0 kB
    Mapped:         345360 kB
    Slab:           112344 kB
    Committed_AS:   535292 kB
    PageTables:       2340 kB
    VmallocTotal: 536870911 kB
    VmallocUsed:    272696 kB
    VmallocChunk: 536598175 kB
    HugePages_Total:     0
    HugePages_Free:      0
    Hugepagesize:     2048 kB

    用free -m查看的结果:
    [root@scs-2 tmp]# free -m
                 total       used       free     shared    buffers     cached
    Mem:          3189       3173         16          0        107       2605
    -/+ buffers/cache:        460       2729
    Swap:         2000         78       1921


    查看/proc/kcore文件的大小(内存镜像):
    [root@scs-2 tmp]# ll -h /proc/kcore
    -r-------- 1 root root 4.1G Jun 12 12:04 /proc/kcore

    备注:

    占用内存的测量

    测量一个进程占用了多少内存,linux为我们提供了一个很方便的方法,/proc目录为我们提供了所有的信息,实际上top等工具也通过这里来获取相应的信息。

    /proc/meminfo 机器的内存使用信息

    /proc/pid/maps pid为进程号,显示当前进程所占用的虚拟地址。

    /proc/pid/statm 进程所占用的内存

    [root@localhost ~]# cat /proc/self/statm

    654 57 44 0 0 334 0

    输出解释

    CPU 以及CPU0。。。的每行的每个参数意思(以第一行为例)为:

    参数 解释 /proc//status

    Size (pages) 任务虚拟地址空间的大小 VmSize/4

    Resident(pages) 应用程序正在使用的物理内存的大小 VmRSS/4

    Shared(pages) 共享页数 0

    Trs(pages) 程序所拥有的可执行虚拟内存的大小 VmExe/4

    Lrs(pages) 被映像到任务的虚拟内存空间的库的大小 VmLib/4

    Drs(pages) 程序数据段和用户态的栈的大小 (VmData+ VmStk )4

    dt(pages) 04

    查看机器可用内存

    /proc/28248/>free

    total used free shared buffers cached

    Mem: 1023788 926400 97388 0 134668 503688

    -/+ buffers/cache: 288044 735744

    Swap: 1959920 89608 1870312

    我们通过free命令查看机器空闲内存时,会发现free的值很小。这主要是因为,在linux中有这么一种思想,内存不用白不用,因此它尽可能的cache和buffer一些数据,以方便下次使用。但实际上这些内存也是可以立刻拿来使用的。

    所以 空闲内存=free+buffers+cached=total-used

    top命令 是Linux下常用的性能 分析工具 ,能够实时显示系统 中各个进程的资源占用状况,类似于Windows的任务管理 器。下面详细介绍它的使用方法。

    top - 02:53:32 up 16 days,  6:34, 17 users,  load average: 0.24, 0.21, 0.24
    Tasks: 481 total,   3 running, 474 sleeping,   0 stopped,   4 zombie
    Cpu(s): 10.3%us,  1.8%sy,  0.0%ni, 86.6%id,  0.5%wa,  0.2%hi,  0.6%si,  0.0%st
    Mem:   4042764k total,  4001096k used,    41668k free,   383536k buffers
    Swap:  2104472k total,     7900k used,  2096572k free,  1557040k cached

      PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
    32497 jacky     20   0  669m 222m  31m R   10  5.6       29:27.62 firefox
     4788 yiuwing   20   0  257m  18m  13m S    5  0.5          5:42.44 konsole
     5657 Liuxiaof  20   0  585m 159m  30m S    4  4.0          5:25.06 firefox
     4455 xiefc      20   0  542m  124m  30m R    4  3.1         7:23.03 firefox
     6188 Liuxiaof  20   0  191m   17m  13m S    4  0.5          0:01.16 konsole
     


    统计信息区前五行是系统整体的统计信息。第一行是任务队列信息,同 uptime  命令的执行结果。其内容如下:

    01:06:48  当前时间 
    up 1:22  系统运行 时间,格式为时:分 
    1 user  当前登录用户 数 
    load average: 0.06, 0.60, 0.48  系统负载 ,即任务队列的平均长度。
                三个数值分别为  1分钟、5分钟、15分钟前到现在的平均值。 


    第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。内容如下:

    Tasks: 29 total  进程总数 
    1 running  正在运行的进程数 
    28 sleeping  睡眠的进程数 
    0 stopped  停止的进程数 
    0 zombie  僵尸进程数 
    Cpu(s): 0.3% us  用户空间占用CPU百分比 
    1.0% sy  内核 空间占用CPU百分比 
    0.0% ni  用户进程空间内改变过优先级的进程占用CPU百分比 
    98.7% id  空闲CPU百分比 
    0.0% wa  等待输入输出的CPU时间百分比 
    0.0% hi    
    0.0% si    


    最后两行为内存 信息。内容如下:

    Mem: 191272k total  物理内存总量 
    173656k used  使用的物理内存总量 
    17616k free  空闲内存总量 
    22052k buffers  用作内核缓存 的内存量 
    Swap: 192772k total  交换区总量 
    0k used  使用的交换区总量 
    192772k free  空闲交换区总量 
    123988k cached  缓冲的交换区总量。
                内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,
                该数值即为这些内容已存在于内存中 的交换区的大小。
                相应的内存再次被换出时可不必再对交换区写入。 


    进程信息区统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。

    序号  列名  含义 
    a  PID  进程id 
    b  PPID  父进程id 
    c  RUSER  Real user name 
    d  UID  进程所有者的用户id 
    e  USER  进程所有者的用户名 
    f  GROUP  进程所有者的组名 
    g  TTY  启动进程的终端名。不是从终端启动的进程则显示为 ? 
    h  PR  优先级 
    i  NI  nice值。负值表示高优先级,正值表示低优先级 
    j  P  最后使用的CPU,仅在多CPU环境 下有意义 
    k  %CPU  上次更新到现在的CPU时间占用百分比 
    l  TIME  进程使用的CPU时间总计,单位秒 
    m  TIME+  进程使用的CPU时间总计,单位1/100秒 
    n  %MEM  进程使用的物理内存 百分比 
    o  VIRT  进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES 
    p  SWAP  进程使用的虚拟内存中,被换出的大小,单位kb。 
    q  RES  进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA 
    r  CODE  可执行代码占用的物理 内存大小,单位kb 
    s  DATA  可执行代码以外的部分(数据 段+栈)占用的物理 内存大小,单位kb 
    t  SHR  共享内存大小,单位kb 
    u  nFLT  页面错误次数 
    v  nDRT  最后一次写入到现在,被修改过的页面数。 
    w  S  进程状态。
                D =不可中断的睡眠状态
                R =运行
                S =睡眠
                T =跟踪/停止
                Z =僵尸进程 
    x  COMMAND  命令名/命令行 
    y  WCHAN  若该进程在睡眠,则显示睡眠中的系统函数名 
    z  Flags  任务标志,参考 sched.h 


    默认情况下仅显示比较重要的  PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND  列。可以通过下面的快捷键来更改显示内容。
    更改显示内容通过 f 键可以选择显示的内容。按 f 键之后会显示列的列表,按 a-z  即可显示或隐藏对应的列,最后按回车键确定。
    按 o 键可以改变列的显示顺序。按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z  可以将相应的列向左移动。最后按回车键确定。
    按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序。而大写的  R 键可以将当前的排序倒转。

     

    ==============================

    top命令使用过程中,还可以使用一些交互的命令来完成其它参数的功能。这些命令是通过快捷键启动的。
    <空格>:立刻刷新。
    P:根据CPU使用大小进行排序。
    T:根据时间、累计时间排序。
    q:退出top命令。
    m:切换显示内存信息。
    t:切换显示进程和CPU状态信息。
    c:切换显示命令名称和完整命令行。
    M:根据使用内存大小进行排序。
    W:将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。

    可以看到,top命令是一个功能十分强大的监控系统的工具,对于系统管理员而言尤其重要。但是,它的缺点是会消耗很多系统资源。

     应用实例
    使用top命令可以监视指定用户,缺省情况是监视所有用户的进程。如果想查看指定用户的情况,在终端中按“U”键,然后输入用户名,系统就会切换为指定用户的进程运行界面。
    a.作用
    free命令用来显示内存的使用情况,使用权限是所有用户。
    b.格式
    free [-b -k -m] [-o] [-s delay] [-t] [-V]
    c.主要参数
    -b -k -m:分别以字节(KB、MB)为单位显示内存使用情况。
    -s delay:显示每隔多少秒数来显示一次内存使用情况。
    -t:显示内存总和列。
    -o:不显示缓冲区调节列。
    d.应用实例
    free命令是用来查看内存使用情况的主要命令。和top命令相比,它的优点是使用简单,并且只占用很少的系统资源。通过-S参数可以使用free命令不间断地监视有多少内存在使用,这样可以把它当作一个方便实时监控器。
    #free -b -s5
    使用这个命令后终端会连续不断地报告内存使用情况(以字节为单位),每5秒更新一次。

    展开全文
  • Linux查看CPU和内存使用情况:http://www.cnblogs.com/xd502djj/archive/2011/03/01/1968041.html ...下面的清单详细的列出了Linux系统下通过视图工具或命令行来查看内存使用情况的各种方法。 1. /pr...

    Linux查看CPU和内存使用情况:http://www.cnblogs.com/xd502djj/archive/2011/03/01/1968041.html

    在做Linux系统优化的时候,物理内存是其中最重要的一方面。自然的,Linux也提供了非常多的方法来监控宝贵的内存资源的使用情况。下面的清单详细的列出了Linux系统下通过视图工具或命令行来查看内存使用情况的各种方法。

    1. /proc/meminfo

    查看RAM使用情况最简单的方法是通过/proc/meminfo。这个动态更新的虚拟文件实际上是许多其他内存相关工具(如:free / ps / top)等的组合显示。/proc/meminfo列出了所有你想了解的内存的使用情况。进程的内存使用信息也可以通过/proc/<pid>/statm 和 /proc/<pid>/status 来查看。

    $ cat /proc/meminfo

    2. atop

    atop命令是一个终端环境的监控命令。它显示的是各种系统资源(CPU, memory, network, I/O, kernel)的综合,并且在高负载的情况下进行了彩色标注。

    $ sudo atop

    3. free

    free命令是一个快速查看内存使用情况的方法,它是对 /proc/meminfo 收集到的信息的一个概述。

    $ free -h

    1.作用 
    free命令用来显示内存的使用情况,使用权限是所有用户。 
    2.格式 
    free [-b-k-m] [-o] [-s delay] [-t] [-V] 
    3.主要参数 
    -b -k -m -g:分别以字节(KB、MB、GB)为单位显示内存使用情况。 
    -s delay:显示每隔多少秒数来显示一次内存使用情况。 
    -t:显示内存总和列。 
    -o:不显示缓冲区调节列。 
     

    4. GNOME System Monitor

    GNOME System Monitor 是一个显示最近一段时间内的CPU、内存、交换区及网络的使用情况的视图工具。它还提供了一种查看CPU及内存使用情况的方法。

    $ gnome-system-monitor

    5. htop

    htop命令显示了每个进程的内存实时使用率。它提供了所有进程的常驻内存大小、程序总内存大小、共享库大小等的报告。列表可以水平及垂直滚动。

    $ htop

    6. KDE System Monitor

    功能同 4 中介绍的GENOME版本。

    $ ksysguard

    7. memstat

    memstat是一个有效识别executable(s), process(es) and shared libraries使用虚拟内存情况的命令。给定一个进程ID,memstat可以列出这个进程相关的可执行文件、数据和共享库。

    $ memstat -p <PID>

    8. nmon

    nmon是一个基于ncurses的系统基准测试工具,它可以监控CPU、内存、I/O、文件系统及网络资源等的互动模式。对于内存的使用,它可以实时的显示 总/剩余内存、交换空间等信息。

    $ nmon

    9. ps

    ps命令可以实时的显示各个进程的内存使用情况。Reported memory usage information includes %MEM (percent of physical memory used), VSZ (total amount of virtual memory used), and RSS (total amount of physical memory used)。你可以使用 “–sort”选项对进程进行排序,例如按RSS进行排序:

    $ ps aux --sort -rss

    10. smem

    smem命令允许你统计基于/proc信息的不同进程和用户的内存使用情况。内存使用情况的分析可以导出图表(如条形图和饼图)。

    $ sudo smem --pie name -c "pss"

    11. top

    top命令提供了实时的运行中的程序的资源使用统计。你可以根据内存的使用和大小来进行排序。
    $ top

     

    主要参数 :
    d:指定更新的间隔,以秒计算。 
    q:没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高的优先序执行。 
    c:显示进程完整的路径与名称。 
    S:累积模式,会将己完成或消失的子行程的CPU时间累积起来。 
    s:安全模式。 
    i:不显示任何闲置(Idle)或无用(Zombie)的行程。 
    n:显示更新的次数,完成后将会退出to 
    显示参数::
    PID(Process ID):进程标示号。 
    USER:进程所有者的用户名。 
    PR:进程的优先级别。 
    NI:进程的优先级别数值。 
    VIRT:进程占用的虚拟内存值。 
    RES:进程占用的物理内存值。 
    SHR:进程使用的共享内存值。 
    S:进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数。 
    %CPU:该进程占用的CPU使用率。 
    %MEM:该进程占用的物理内存和总内存的百分比。 
    TIME+:该进程启动后占用的总的CPU时间。 
    Command:进程启动的启动命令名称,如果这一行显示不下,进程会有一个完整的命令行。 


    top命令使用过程中,还可以使用一些交互的命令来完成其它参数的功能。这些命令是通过快捷键启动的。 
    <空格>:立刻刷新。 
    P:根据CPU使用大小进行排序。 
    T:根据时间、累计时间排序。 
    q:退出top命令。 
    m:切换显示内存信息。 
    t:切换显示进程和CPU状态信息。 
    c:切换显示命令名称和完整命令行。 
    M:根据使用内存大小进行排序。 
    W:将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。 

    12. vmstat

    vmstat命令显示实时的和平均的统计,覆盖CPU、内存、I/O等内容。例如内存情况,不仅显示物理内存,也统计虚拟内存。

    $ vmstat -s

    13.uptime

    18:59:15 up 25 min, 2 users, load average: 1.23, 1.32, 1.21 
    现在的时间 
    系统开机运转到现在经过的时间 
    连线的使用者数量 
    最近一分钟,五分钟和十五分钟的系统负载 
    参数: -V 显示版本资讯。 


    14.vmstat

    procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu---- 
    r b swpd free buff cache si so bi bo in cs us sy id wa 
    0 1 24980 10792 8296 47316 5 19 205 52 1161 698 26 3 1 70 
    1 观察磁盘活动情况 
    磁盘活动情况主要从以下几个指标了解: 
    bi:表示从磁盘每秒读取的块数(blocks/s)。数字越大,表示读磁盘的活动越多。 
    bo:表示每秒写到磁盘的块数(blocks/s)。数字越大,表示写磁盘的活动越多。 
    wa:cpu等待磁盘I/O(未决的磁盘IO)的时间比例。数字越大,表示文件系统活动阻碍cpu的情况越严重,因为cpu在等待慢速的磁盘系统提供数据。wa为0是最理想的。如果wa经常大于10,可能文件系统就需要进行性能调整了。 
    2 观察cpu活动情况 
    vmstat比top更能反映出cpu的使用情况: 
    us:用户程序使用cpu的时间比例。这个数字越大,表示用户进程越繁忙。 
    sy: 系统调用使用cpu的时间比例。注意,NFS由于是在内核里面运行的,所以NFS活动所占用的cpu时间反映在sy里面。这个数字经常很大的话,就需要注 意是否某个内核进程,比如NFS任务比较繁重。如果us和sy同时都比较大的话,就需要考虑将某些用户程序分离到另外的服务器上面,以免互相影响。 
    id:cpu空闲的时间比例。 
    wa:cpu等待未决的磁盘IO的时间比例。 

    iostat
    用于统计CPU的使用情况及tty设备、硬盘和CD-ROM的I/0量 
    参数: 
    -c 只显示CPU行 
    -d 显示磁盘行 
    -k 以千字节为单位显示磁盘输出 
    -t 在输出中包括时间戳 
    -x 在输出中包括扩展的磁盘指标 
    avg-cpu: %user %nice %sys %iowait %idle 
    20.25 0.18 2.61 76.39 0.57 
    %iowait 等待本地I/O时CPU空闲时间的百分比 
    %idle 未等待本地I/O时CPU空闲时间的百分比 
    Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn 
    hda 9.86 284.34 84.48 685407 2036 
    每秒传输数(tps)、每秒512字节块读取数(Blk_read/s)、每秒512字节块写入数(Blk_wrtn/s)和512字节块读取(Blk_read)和写入(Blk_wrtn)的总数量。

    系统
    # uname -a # 查看内核/操作系统/CPU信息 
    # head -n 1 /etc/issue # 查看操作系统版本 
    # cat /proc/cpuinfo # 查看CPU信息 
    # hostname # 查看计算机名 
    # lspci -tv # 列出所有PCI设备 
    # lsusb -tv # 列出所有USB设备 
    # lsmod # 列出加载的内核模块 
    # 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 # 查看所有安装的软件包

    展开全文
  • Linux系统查看CPU使用率、内存使用率、磁盘使用

    万次阅读 多人点赞 2019-04-16 15:17:00
    一、查看CPU使用率 1. top 命令 top命令可以看到总体的系统运行状态和cpu的使用率 。 %us:表示用户空间程序的cpu使用率(没有通过nice调度) %sy:表示系统空间的cpu使用率,主要是内核程序。 %ni:表示用户空间...

    一、查看CPU使用率

    1. top 命令

    [root@sss ~]# top
    top - 16:54:38 up 7 days,  5:13,  3 users,  load average: 0.00, 0.01, 0.05
    Tasks:  77 total,   2 running,  75 sleeping,   0 stopped,   0 zombie
    %Cpu(s):  0.7 us,  0.3 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    KiB Mem :  1882232 total,   813020 free,   330164 used,   739048 buff/cache
    KiB Swap:        0 total,        0 free,        0 used.  1386608 avail Mem 
    
      PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                                                                                        
    17215 root       0 -20  127504  12176   9560 S  0.7  0.6  21:46.45 AliYunDun                                                                                                                                      
     2770 root      20   0  573932  17232   6088 S  0.3  0.9   1:11.38 tuned                                                                                                                                          
        1 root      20   0   43548   3844   2588 S  0.0  0.2   0:06.54 systemd                                                                                                                                        
        2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd                                                                                                                                       
        3 root      20   0       0      0      0 S  0.0  0.0   0:08.75 ksoftirqd/0                                                                                                                                    
        5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H              
    ... ...                                                                                                                                 
    

    top命令可以看到总体的系统运行状态和cpu的使用率 。

    %us:表示用户空间程序的cpu使用率(没有通过nice调度)
    %sy:表示系统空间的cpu使用率,主要是内核程序。
    %ni:表示用户空间且通过nice调度过的程序的cpu使用率。
    %id:空闲cpu
    %wa:cpu运行时在等待io的时间
    %hi:cpu处理硬中断的数量
    %si:cpu处理软中断的数量
    %st:被虚拟机偷走的cpu
    注:99.0 id,表示空闲CPU,即CPU未使用率,100%-99.0%=1%,即系统的cpu使用率为1%。
    

    2、vmstat

    详细使用和参数介绍参考网址

    3、sar

    sar命令语法和vmstat一样。命令不存在时需要安装sysstat包,这个包很有用。
    

    命令示例:

    例如每1秒采集一次CPU使用率,共采集5次。
    
    [root@sss ~]# sar -u 1 5
    Linux 3.10.0-957.10.1.el7.x86_64 (izuf633l0ge76tv5mzalpmz)      04/16/2019      _x86_64_        (1 CPU)
    
    04:56:03 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
    04:56:04 PM     all      0.00      0.00      0.00      0.00      0.00    100.00
    04:56:05 PM     all      0.00      0.00      0.00      0.00      0.00    100.00
    04:56:06 PM     all      0.99      0.00      0.99      0.00      0.00     98.02
    04:56:07 PM     all      0.00      0.00      0.00      0.00      0.00    100.00
    04:56:08 PM     all      0.00      0.00      0.00      0.00      0.00    100.00
    Average:        all      0.20      0.00      0.20      0.00      0.00     99.60
    

    和top一样,可以看到所有cpu的使用情况。如果需要查看某颗cpu的使用可以用-P参数。例如指定显示0号cpu 的使用情况。

    [root@sss ~]# sar -P 0 -u 1 5
    Linux 3.10.0-957.10.1.el7.x86_64 (izuf633l0ge76tv5mzalpmz)      04/16/2019      _x86_64_        (1 CPU)
    
    04:39:13 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
    04:39:14 PM       0      0.00      0.00      0.99      0.00      0.00     99.01
    04:39:15 PM       0      0.00      0.00      0.00      0.00      0.00    100.00
    04:39:16 PM       0      0.00      0.00      0.00      0.00      0.00    100.00
    04:39:17 PM       0      0.00      0.00      0.00      0.00      0.00    100.00
    04:39:18 PM       0      1.00      0.00      0.00      0.00      0.00     99.00
    Average:          0      0.20      0.00      0.20      0.00      0.00     99.60
    [root@izuf633l0ge76tv5mzalpmz ~]# 
    

    进程队列长度和平均负载状态
    例如每1秒采集一次,共采集5次。

    [root@sss ~]# sar -q 1 5  
    Linux 3.10.0-957.10.1.el7.x86_64 (izuf633l0ge76tv5mzalpmz)      04/16/2019      _x86_64_        (1 CPU)
    
    04:40:14 PM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
    04:40:15 PM         0       149      0.00      0.01      0.05         0
    04:40:16 PM         0       149      0.00      0.01      0.05         0
    04:40:17 PM         0       149      0.00      0.01      0.05         0
    04:40:18 PM         1       149      0.00      0.01      0.05         0
    04:40:19 PM         1       149      0.00      0.01      0.05         0
    Average:            0       149      0.00      0.01      0.05         0
    

    输出项:

    runq-sz:运行队列的长度(等待运行的进程数)
    
    plist-sz:进程列表中进程(processes)和线程(threads)的数量
    
    ldavg-1:最后1分钟的系统平均负载(System load average)
    
    ldavg-5:过去5分钟的系统平均负载
    
    ldavg-15:过去15分钟的系统平均负载
    

    创建的平均值和上下文切换的次数
    例如每1秒收集一次,共收集5次。

    [root@sss ~]# sar -w 1 5 
    Linux 3.10.0-957.10.1.el7.x86_64 (izuf633l0ge76tv5mzalpmz)      04/16/2019      _x86_64_        (1 CPU)
    
    04:41:39 PM    proc/s   cswch/s
    04:41:40 PM      0.00    274.26
    04:41:41 PM      0.00    277.78
    04:41:42 PM      0.00    285.00
    04:41:43 PM      0.00    280.00
    04:41:44 PM      0.00    270.00
    Average:         0.00    277.40
    

    sar命令也可以获取过去指定日期的性能参数。

    [root@sss ~]# sar -u -f /var/log/sa/sa08
    Linux 3.10.0-693.2.2.el7.x86_64 (localhost.localdomain)         04/08/2019      _x86_64_        (1 CPU)
    
    10:54:35 AM       LINUX RESTART
    
    11:00:02 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
    11:10:01 AM     all     12.93      0.23      2.89      1.54      0.00     82.41
    11:20:01 AM     all     46.58      0.00      8.81      0.79      0.00     43.82
    11:30:01 AM     all     44.93      0.00      9.68      0.15      0.00     45.24
    11:40:02 AM     all      0.25      0.00      0.15      0.00      0.00     99.60
    11:50:01 AM     all      0.19      0.00      0.13      0.00      0.00     99.68
    12:00:01 PM     all      0.31      0.00      0.19      0.14      0.00     99.37
    ... ...
    

    4、mpstat

    这个命令也在sysstat包中,语法类似。
    cpu使用情况比sar更加详细些,也可以用-P指定某颗cpu 。
    

    例如每1秒收集一次,共5次。

    [root@sss ~]# mpstat 1 5 
    Linux 3.10.0-957.10.1.el7.x86_64 (izuf633l0ge76tv5mzalpmz)      04/16/2019      _x86_64_        (1 CPU)
    
    04:58:01 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
    04:58:02 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
    04:58:03 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
    04:58:04 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
    04:58:05 PM  all    1.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.00
    04:58:06 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
    Average:     all    0.20    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.80
    

    5、iostat

    这个命令主要用来查看io使用情况,也可以来查看cpu,个人感觉不常用。
    

    示例

    [root@sss ~]# iostat -c 1 2
    Linux 3.10.0-957.10.1.el7.x86_64 (izuf633l0ge76tv5mzalpmz)      04/16/2019      _x86_64_        (1 CPU)
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               0.26    0.00    0.21    0.01    0.00   99.53
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               0.00    0.00    0.00    0.00    0.00  100.00
    

    6、dstat

    每秒cpu使用率情况获取

    [root@sss ~]#  dstat -c
    ----total-cpu-usage----
    usr sys idl wai hiq siq
      0   0 100   0   0   0
      0   1  99   0   0   0
      1   0  99   0   0   0
      0   0 100   0   0   0
      0   0 100   0   0   0
      1   1  98   0   0   0
      0   0 100   0   0   0
      ... ...
    

    最占cpu的进程获取

    [root@sss ~]# dstat --top-cpu  
    -most-expensive-
      cpu process   
    AliYunDun    0.2
    AliYunDun    2.0
    mysqld       1.0
    AliYunDun    1.0
    kworker/0:1H 1.0
    AliYunDun    1.0
    AliYunDun    1.0
    AliYunDun    1.0
    

    二、查看内存使用率

    1、top命令

    top 命令查看内存使用率

    查看第四行: KiB Mem
    内存使用率: used/ total
    

    2、free命令

    free命令可以显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer。在Linux系统监控的工具中,free命令是最经常使用的命令之一。

    1.命令格式:
    free [参数]
    
    2.命令功能:
    free 命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。共享内存将被忽略
    
    3.命令参数:
    -b  以Byte为单位显示内存使用情况。 
    
    -k  以KB为单位显示内存使用情况。 
    
    -m  以MB为单位显示内存使用情况。
    
    -g   以GB为单位显示内存使用情况。 
    
    -o  不显示缓冲区调节列。 
    
    -s<间隔秒数>  持续观察内存使用状况。 
    
    -t  显示内存总和列。 
    
    -V  显示版本信息。 
    
    4.使用实例:

    实例1:显示内存使用情况

    命令示例:

    free [-k] # 以 kb  为单位显示内存使用状况
    free -g # 以 G 为单位显示内存使用状况
    free -m # 以 M 为单位显示内存使用状况
    free -t  # 以总和的形式显示内存的使用信息
    free -s 1 # 每一秒显示内存使用情况
    

    输出:

    [root@sss ~]# free
                  total        used        free      shared  buff/cache   available
    Mem:        1882232      331760      811004         592      739468     1384944
    Swap:             0           0           0
    
    [root@sss ~]# free -g
                  total        used        free      shared  buff/cache   available
    Mem:              1           0           0           0           0           1
    Swap:             0           0           0
    
    [root@sss ~]# free -m
                  total        used        free      shared  buff/cache   available
    Mem:           1838         324         791           0         722        1352
    Swap:             0           0           0
    
    [root@sss ~]# free -t
                  total        used        free      shared  buff/cache   available
    Mem:        1882232      331760      811004         592      739468     1384948
    Swap:             0           0           0
    Total:      1882232      331760      811004
    
    [root@sss ~]# free -s 1
                  total        used        free      shared  buff/cache   available
    Mem:        1882232      331760      811004         592      739468     1384948
    Swap:             0           0           0
    
                  total        used        free      shared  buff/cache   available
    Mem:        1882232      331784      810980         592      739468     1384924
    Swap:             0           0           0
    
                  total        used        free      shared  buff/cache   available
    Mem:        1882232      331784      810980         592      739468     1384924
    Swap:             0           0           0
    ... ...
    

    说明–对这些数值的解释:

    total:总计物理内存的大小。
    
    used:已使用多大。
    
    free:可用有多少。
    
    Shared:多个进程共享的内存总额。
    
    Buff/cache:磁盘缓存的大小。
    

    第三行是交换分区SWAP的,也就是我们通常所说的虚拟内存。
    当可用内存少于额定值的时候,就会进行交换

    如何看额定值:

    命令:

    cat /proc/meminfo 
    

    输出:

    [root@sss ~]# cat /proc/meminfo
    MemTotal:        1882232 kB
    MemFree:          811244 kB
    MemAvailable:    1385300 kB
    Buffers:           81268 kB
    Cached:           602500 kB
    SwapCached:            0 kB
    Active:           601948 kB
    Inactive:         379880 kB
    Active(anon):     298392 kB
    Inactive(anon):      256 kB
    Active(file):     303556 kB
    Inactive(file):   379624 kB
    Unevictable:           0 kB
    Mlocked:               0 kB
    SwapTotal:             0 kB
    SwapFree:              0 kB
    Dirty:               320 kB
    Writeback:             0 kB
    AnonPages:        298052 kB
    Mapped:            47236 kB
    Shmem:               592 kB
    Slab:              55772 kB
    SReclaimable:      44076 kB
    SUnreclaim:        11696 kB
    KernelStack:        2384 kB
    PageTables:         5808 kB
    NFS_Unstable:          0 kB
    Bounce:                0 kB
    WritebackTmp:          0 kB
    CommitLimit:      941116 kB
    Committed_AS:     810896 kB
    VmallocTotal:   34359738367 kB
    VmallocUsed:       10604 kB
    VmallocChunk:   34359719676 kB
    HardwareCorrupted:     0 kB
    AnonHugePages:    237568 kB
    CmaTotal:              0 kB
    CmaFree:               0 kB
    HugePages_Total:       0
    HugePages_Free:        0
    HugePages_Rsvd:        0
    HugePages_Surp:        0
    Hugepagesize:       2048 kB
    DirectMap4k:       63360 kB
    DirectMap2M:     2033664 kB
    DirectMap1G:           0 kB
    

    交换将通过三个途径来减少系统中使用的物理页面的个数:

    1.减少缓冲与页面cache的大小, 
    
    2.将系统V类型的内存页面交换出去,  
    
    3.换出或者丢弃页面。(Application 占用的内存页,也就是物理内存不足)。 
    

    事实上,少量地使用swap是不是影响到系统性能的。

    那buffers和cached都是缓存,两者有什么区别呢?

    为了提高磁盘存取效率, Linux做了一些精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cache方式:Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache有效缩短了 I/O系统调用(比如read,write,getdents)的时间。
    
    磁盘的操作有逻辑级(文件系统)和物理级(磁盘块),这两种Cache就是分别缓存逻辑和物理级数据的。
    
    Page cache实际上是针对文件系统的,是文件的缓存,在文件层面上的数据会缓存到page cache。文件的逻辑层需要映射到实际的物理磁盘,这种映射关系由文件系统来完成。当page cache的数据需要刷新时,page cache中的数据交给buffer cache,因为Buffer Cache就是缓存磁盘块的。但是这种处理在2.6版本的内核之后就变的很简单了,没有真正意义上的cache操作。
    
    Buffer cache是针对磁盘块的缓存,也就是在没有文件系统的情况下,直接对磁盘进行操作的数据会缓存到buffer cache中,例如,文件系统的元数据都会缓存到buffer cache中。
    
    简单说来,page cache用来缓存文件数据,buffer cache用来缓存磁盘数据。在有文件系统的情况下,对文件操作,那么数据会缓存到page cache,如果直接采用dd等工具对磁盘进行读写,那么数据会缓存到buffer cache。
    
    所以我们看linux,只要不用swap的交换空间,就不用担心自己的内存太少.如果常常swap用很多,可能你就要考虑加物理内存了.这也是linux看内存是否够用的标准.
    
    如果是应用服务器的话,一般只看第二行,+buffers/cache,即对应用程序来说free的内存太少了,也是该考虑优化程序或加内存了。
    
    实例2:以总和的形式显示内存的使用信息

    命令:

     	free -t 
    

    输出:

    [root@sss ~]# free -t
                  total        used        free      shared  buff/cache   available
    Mem:        1882232      331760      811004         592      739468     1384948
    Swap:             0           0           0
    Total:      1882232      331760      811004
    
    实例3:周期性的查询内存使用信息

    命令:

    free -s 10
    

    输出:

    [root@sss ~]# free -s 10
                  total        used        free      shared  buff/cache   available
    Mem:        1882232      324924      816688         496      740620     1392280
    Swap:             0           0           0
    
                  total        used        free      shared  buff/cache   available
    Mem:        1882232      324944      816664         496      740624     1392260
    Swap:             0           0           0
    

    说明:

    每10s 执行一次命令
    

    三、查看磁盘使用率

    1、输入df命令

    [root@sss ~]# df
    

    显示详情:

    Filesystem1K-blocksUsedAvailableUse%Mounted on
    /dev/vda14115180837942443524413210%/
    devtmpfs93064409306440%/dev
    tmpfs94111609411160%/dev/shm
    tmpfs9411164689406481%/run
    tmpfs94111609411160%/sys/fs/cgroup
    tmpfs18822401882240%/run/user/0

    说明

    磁盘使用率=(Used列数据之和)/(1k-blocks列数据之和)
    

    磁盘和内存的区别与联系:

    (磁盘--也叫硬盘--或是U盘--或是移动硬盘)
    1、硬盘与内存都是存储器,一个是内部,一个是外部。
    
    2、硬盘与内存的区别是很大的,这里只谈最主要的三点:
    	1)内存是计算机的工作场所,硬盘用来存放暂时不用的信息;
    	2)内存是半导体材料制作,硬盘是磁性材料制作;
    	3)内存中的信息会随掉电而丢失,硬盘中的信息可以长久保存。
    	
    3、内存与硬盘的联系也非常密切:
    		硬盘上的信息永远是暂时不用的,要用请装入内存!
    		CPU与硬盘不发生直接的数据交换,CPU只是通过控制信号指挥硬盘工作,硬盘上的信息只有在装入内存后才能被处理。
    		
    4、计算机的启动过程就是一个从硬盘上把最常用信息装入内存的过程。
    
    5、硬盘则决定你的电脑可以装下多少东西,内存则决定你的电脑开机后一次最多可以运行多少程序(如手机运行内存)。
    
    展开全文
  • linux查看内存占用情况

    万次阅读 2019-04-25 17:45:26
    输入:top PID:进程的ID  USER:进程所有者  PR:进程的优先级别,越小越优先被执行 ... VIRT:进程占用的虚拟内存 ... SHR:进程使用的共享内存  S:进程的状态。S表示休眠,R表示正在运行,Z表...
  • 查看Linux磁盘及内存占用情况

    万次阅读 多人点赞 2017-12-11 17:56:46
    查看磁盘使用情况: ...查看内存占用情况: 1.top PID:当前运行进程的ID USER:进程属主 PR:每个进程的优先级别 NInice:反应一个进程“优先级”状态的值,其取值范围是-20至19,一  共40个级别。这个值
  • Linux查看内存使用情况和空间容量使用情况的命令查看内存使用情况:free显示进程信息(包括CPU、内存使用等信息):top显示文件使用空间:du显示磁盘空间使用情况:df 查看内存使用情况:free free - Display ...
  • Linux如何查看CPU、内存、磁盘使用情况

    万次阅读 多人点赞 2020-03-14 22:43:09
    Linux如何查看CPU、内存、磁盘使用情况 top命令是什么 如何使用top 简介top界面的统计信息区(重要、关键) 简介前五条(整体负载情况) 简介五条后(每个进程的负载情况) top命令是什么 top命令是Linux下常用的...
  • Linux上分析Java内存使用情况

    千次阅读 2018-11-06 12:55:55
    使用pmap查看进程内存 pmap 1569 内容太多只截取了中间的一部分 第一列:内存块起始地址 第二列:内存占用大小 第三列:权限 第四列:内存名称, 其中【anon】表示动态分配的内存,【stack】表示栈内存 ...
  • Linux中检查内存使用情况的命令

    万次阅读 2018-06-16 19:55:16
    Linux操作系统包含大量工具,所有这些工具都可以帮助您管理系统。从简单的文件和目录工具到非常复杂的安全命令,在Linux上没有太多不能做的事情。而且,虽然普通桌面用户可能... 确定内存使用率是一项技能,您可能...
  • Linux下如何查看内存使用情况

    千次阅读 2016-12-22 15:37:37
    Linux使用什么方法来查看内存使用情况呢?我想监视Linux系统的内存使用情况,在Linux下有哪些视图或者命令行工具可用呢?  在做Linux系统优化的时候,物理内存是其中最重要的一方面。自然的,Linux也提供了...
  • 如何查看linux服务器内存使用情况

    千次阅读 2020-07-11 10:50:45
    free命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。 直接输入free命令,显示如下 free命令默认是显示单位kb,可以采用free -m和free -g命令查看,分别表示MB和GB 另外,...
  • 如何正确查看Linux机器内存使用情况

    万次阅读 2019-06-20 11:54:15
    如何正确查看Linux机器内存使用情况 背景 只要工作上涉及到Linux机器,基本上都会有这样一个需求,查看内存使用情况,但是怎么看才正确呢?之前使用的是top命令,一直存在一个误区。 为什么top命令看内存会有误区? ...
  • 查看GPU使用情况: nvidia-smi 查看GPU使用情况实例 相关解释: Fan:风扇转速,是计算机的期望转速,风扇故障则显示N/A; Temp:显卡内部的温度,单位是摄氏度; Perf:表征性能状态,从P0到P12,P0表示最大...
  • 一个服务器,最重要的资源之一就是内存内存够不够用,是直接...本文介绍如何查看Linux服务器内存使用情况, 1、free命令 free -m [root@localhost ~]# free -m  total used free shared buffers cac
  • 一、按进程的内存使用率排序 运行 top 命令后,键入大写 M。有两种途径: a) 打开大写键盘的情况下,直接按M键 b) 未打开大写键盘的情况下,Shift+M键 二、按进程的CPU使用率排序 运行 top 命令后,键入大写 ...
  • 二、查看某个进程JVM的GC使用情况 jstat -gc 71614 5000 jstat -gc 进程号刷新时间 S0C:年轻代中第一个survivor(幸存区)的容量 (字节) S1C:年轻代中第二个survivor(幸存区)的容量 (字节) S0U:年轻代中....
  • Linux 查看内存 和 GPU使用情况

    千次阅读 2018-04-13 09:25:55
    查看内存使用情况,设置为0.1s 刷新一次watch -n 0.1 free -m执行这个命令后进入到内存使用情况界面,包括total,used,free,shared,buff/cache,available,free+部分buff/cache=available。available为可用内存按ctrl ...
  • 一、查看内存使用情况命令: free -h 以混合形式展示 -m 以MB形式展示 -g 以GB形式展示 二、手动释放多余内存过程: 释放缓存关键的配置文件 /proc/sys/vm/drop_caches。这个文件中记录了缓存释放的参数,...
  • Linux查看CPU和内存使用情况

    千次阅读 2017-09-07 14:35:16
    在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要。在 CentOS 中,可以通过 top 命令来查看 CPU 使用状况。运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话...
  • linux查看服务器内存占用情况

    千次阅读 2020-11-03 16:22:49
    查看某个进程的占用内存情况(以‘device_maintenance’为例) 1.查找进程号 ps -ef | grep 'device_maintenance' 或 ps -aux | grep 'device_maintenance' 2.查看服务器整体内存占用情况1 3.查看服务器整体内存...
  • 2、查看内存使用 3、查看cpu和内存使用率 4、查看硬盘大小 1、查看cpu的方法 cat /proc/cpuinfo 2、查看内存使用 free -m total:表示物理,内存总量 used:总计分配给缓存(包含Buffer和cache)使用的...
  • java分布式系统,在linux下,如何查看各服务占用内存情况? ![图片说明](https://img-ask.csdn.net/upload/201612/07/1481073765_339860.png)
  •  查看内存使用情况 free -h total 总的内存,used已经使用内存 free还有多少可用内存  ------------------------------------------------------------------------------------------------------------...
  • 还不是因为我的笔记本内存只有16G,想再买一条扩展但是又不知道已安装的是不是双内存,故出此教程! 1、准备工作 Linux操作系统(这不是废话吗) dmidecode(可能自带,可能要自己安装) 2、工具安装 2.1、yum ...
  • linux系统查看进程内存情况的方法多种多样,下面介绍三种常用方法: 第一种方法,top命令 通过指令 top -p 进程PID查看,进程Pid可通过指令:ps -ef | grep <进程名称> 获取 举例:查看进程ChargingPile内存...
  • 如何查看Linux磁盘及内存占用情况

    千次阅读 2020-08-12 09:13:17
    文章目录一、查看磁盘使用情况:1.df -k:以KB为单位显示磁盘使用量和占用率2.df -m:以Mb为单位显示磁盘使用量和占用率3.df --help:查看更多df命令及使用方法二、查看内存占用情况:1.top2.free3.cat /proc/...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 545,159
精华内容 218,063
关键字:

查看linux内存使用情况

linux 订阅