美文网首页OPS(运维)Linux学习
Linux命令行查看内存

Linux命令行查看内存

作者: Pecksniff1994 | 来源:发表于2019-06-20 12:40 被阅读0次

    用 'top -i' 看看有多少进程处于 Running 状态,可能系统存在内存或 I/O 瓶颈,用 free 看看系统内存使用情况,swap 是否被占用很多,用 iostat 看看 I/O 负载情况...

    还有一种办法是 ps -ef | sort -k7 ,将进程按运行时间排序,看哪个进程消耗的cpu时间最多。

    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配置文件的推荐方法。 
    

    free
    1.作用
    free命令用来显示内存的使用情况,使用权限是所有用户。
    **2.格式 **

    free [-b-k-m] [-o] [-s delay] [-t] [-V] 
    

    **3.主要参数 **

    -b -k -m -g:分别以字节(KB、MB、GB)为单位显示内存使用情况。 
    -s delay:显示每隔多少秒数来显示一次内存使用情况。 
    -t:显示内存总和列。 
    -o:不显示缓冲区调节列。 
    

    uptime

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

    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和内存使用情况:

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

    1. /proc/meminfo

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

    $ cat /proc/meminfo
    
    image.png
    1. atop

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

    $ sudo atop
    
    image.png
    1. free

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

    $ free -h
    
    image.png
    1. GNOME System Monitor

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

    $ gnome-system-monitor
    
    image.png
    1. htop

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

    $ htop
    
    image.png
    1. KDE System Monitor

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

    $ ksysguard
    
    image.png
    1. memstat

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

    $ memstat -p <PID>
    
    image.png
    1. nmon

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

    $ nmon
    
    image.png
    1. 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
    
    image.png
    1. smem

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

    $ sudo smem --pie name -c "pss"
    
    image.png
    1. top

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

    $ top
    
    image.png
    1. vmstat

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

    $ vmstat -s
    

    相关文章

      网友评论

        本文标题:Linux命令行查看内存

        本文链接:https://www.haomeiwen.com/subject/siydqctx.html