• Linux找茬


    前言

    如果本文中的命令无法使用,那么先apt install xxx
    如果apt install xxx不成功,就先升级aptapt update,然后再安装apt install xxx
    如果以上操作不成功,可以加上sudo前缀重试一遍。

    整机:top

    在这里插入图片描述

    主要关注load averageCPUMEM
    load average也就是系统的负载均衡,一共三个值,分别代表1分钟、5分钟、15分钟系统的平均负载值。
    如果三个值相加除以3再乘以100%的结果大于60%,则表示系统负荷过高。

    top命令后,一直按键盘上的1,则会显示每个CPU内核的详细情况。
    在这里插入图片描述
    top命令后,按shift+H,可以显示线程数(或者top -H也行)。

    整机:uptime

    top的精简版。

    整机:pidstat

    # pidstat和pidstat -u效果等同,默认就是pidstat -u
    pidstat -u -p ALL
    
    • 1
    • 2

    在这里插入图片描述
    显示进程CPU使用信息。

    # -u,即显示CPU,-p,即指定进程号
    pidstat -u -p 888
    
    • 1
    • 2

    显示进程内存使用信息。

    pidstat -p 470 -r 2 # 2表示2秒钟采集一次,循环输出,有点像tail
    
    • 1

    显示进程IO使用信息。

    pidstat -p 470 -d 2 # 2表示2秒钟采集一次,循环输出,有点像tail
    
    • 1

    参数说明:

    -u:显示各个进程的cpu使用统计
    -r:显示各个进程的内存使用统计
    -d:显示各个进程的IO使用情况
    -p:指定进程号
    -w:显示每个进程的上下文切换情况
    -t:显示选择任务的线程的统计信息外的额外信息
    -T { TASK | CHILD | ALL }
    这个选项指定了pidstat监控的。TASK表示报告独立的task,CHILD关键字表示报告进程下所有线程统计信息。ALL表示报告独立的task和task下面的所有线程。
    注意:task和子线程的全局的统计信息和pidstat选项无关。这些统计信息不会对应到当前的统计间隔,这些统计信息只有在子线程kill或者完成的时候才会被收集。
    -V:版本号
    -h:在一行上显示了所有活动,这样其他程序可以容易解析。
    -I:在SMP环境,表示任务的CPU使用率/内核数量
    -l:显示命令名和所有参数
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    -u结果说明:

    PID:进程ID
    %usr:进程在用户空间占用cpu的百分比
    %system:进程在内核空间占用cpu的百分比
    %guest:进程在虚拟机占用cpu的百分比
    %CPU:进程占用cpu的百分比
    CPU:处理进程的cpu编号
    Command:当前进程对应的命令
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    -r结果说明:

    Minflt/s:任务每秒发生的次要错误,不需要从磁盘中加载页
    Majflt/s:任务每秒发生的主要错误,需要从磁盘中加载页
    VSZ:虚拟地址大小,虚拟内存的使用KB
    RSS:常驻集合大小,非交换区五里内存使用KB
    
    • 1
    • 2
    • 3
    • 4

    -d结果说明:

    kB_rd/s:每秒从磁盘读取的KB
    kB_wr/s:每秒写入磁盘KB
    kB_ccwr/s:任务取消的写入磁盘的KB。当任务截断脏的pagecache的时候会发生。
    
    • 1
    • 2
    • 3

    -w结果说明:

    Cswch/s:每秒主动任务上下文切换数量
    Nvcswch/s:每秒被动任务上下文切换数量
    
    • 1
    • 2

    -t结果说明:

    TGID:主线程(线程组)的标识
    TID:线程id
    %usr:进程在用户空间占用cpu的百分比
    %system:进程在内核空间占用cpu的百分比
    %guest:进程在虚拟机占用cpu的百分比
    %CPU:进程占用cpu的百分比
    CPU:处理进程的cpu编号
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    -T结果说明:

    Usr-ms:任务和子线程在用户级别使用的毫秒数。
    System-ms:任务和子线程在系统级别使用的毫秒数。
    Guest-ms:任务和子线程在虚拟机(running a virtual processor)使用的毫秒数。
    
    • 1
    • 2
    • 3

    CPU: vmstat

    一般 vmstat工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数。

    # 间隔2秒,采样3次
    vmstat-n 2 3
    
    • 1
    • 2

    结果说明:
    procs
    r,运行和等待CPU时间片的进程数,原则上1核的CPU的运行队列不要超过2,整个系统的运行队列不能超过总核数的2倍,否则代表系统压力过大。
    b,等待资源的进程数,比如正在等待磁盘I/0、网络I/0等。
    cpu
    us,用户进程消耗CPU时间百分比,us值高,用户进程消耗CPU时间多,如果长期大于5O%,优化程序。
    sy,内核进程消耗的CPU时间百分比。
    us+sy,参考值为80%,如果us+sy大于80%,说明可能存在CPU不足。
    id,处于空闲的CPU百分比。
    wa,系统等待IO的CPU时间百分比。
    st,来自于一个虚拟机偷取的CPU时间的百分比。

    查看CPU详细信息:

    # 显示所有CPU信息,间隔2秒采集一次
    mpstat-P ALL 2
    
    • 1
    • 2

    内存:free

    # -m,即按MB单位显示内存信息;-g,即按GB单位显示内存信息。
    free -m
    
    • 1
    • 2

    在这里插入图片描述

    结果说明:
    total,内存总大小。
    used,内存已使用大小。
    free,内存剩余大小。
    use,磁盘已使用百分比。
    hared,多个进程共享的内存总额。
    buff/cache,磁盘的缓存大小。
    available,可以被新应用程序使用的内存大小。

    当可用物理内存占比低于20%,可认为系统内存不足,应该更换更大的内存条。

    Mem:物理内存
    Swap:虚拟内存

    swap介绍:
    Linux 的交换分区(swap),或者叫内存置换空间(swap space),是磁盘上的一块区域,可以是一个分区,也可以是一个文件,或者是他们的组合。

    SWAP的作用类似Windows系统下的“虚拟内存”。当物理内存不足时,拿出部分硬盘空间当SWAP分区(虚拟成内存)使用,从而解决内存容量不足的情况。

    SWAP意思是交换,顾名思义,当某进程向OS请求内存发现不足时,OS会把内存中暂时不用的数据交换出去,放在SWAP分区中,这个过程称为SWAP OUT。当某进程又需要这些数据且OS发现还有空闲物理内存时,又会把SWAP分区中的数据交换回物理内存中,这个过程称为SWAP IN。

    当然,swap大小是有上限的,一旦swap使用完,操作系统会触发OOM-Killer机制,把消耗内存最多的进程kill掉以释放内存。

    硬盘:df

    df -h
    
    • 1

    结果说明:
    size,磁盘总大小。
    used,磁盘已使用大小。
    avail,磁盘剩余大小。
    use,磁盘已使用百分比。

    磁盘IO: iostat

    iostat -xdk 2 3 # 每隔2秒钟采集一次,总共采集3次
    
    • 1

    在这里插入图片描述
    结果说明:
    rkB/s,每秒读取数据量kB。
    wkB/s,每秒写入数据量kB。
    r_await,读的平均等待时间,单位毫秒;值越小,性能越好。
    w_await,写的平均等待时间,单位毫秒;值越小,性能越好。
    util,一秒中有百分几的时间用于l/O操作,接近100%时,表示磁盘带宽跑满,需要优化程序或者增加磁盘。
    rkB/s、wkB/s根据系统应用不同会有不同的值,但有规律遵循:长期、超大数据读写,肯定不正常,需要优化程序读取。

    网络lO: ifstat

    ifstat 2 # 每隔2秒采集1次,不写默认就是1秒采集1次
    
    • 1

    结果说明:
    KB/s in,下载网速,如果转化成通用的Kb/s需要乘以8。
    KB/s out,上传网速,如果转化成通用的Kb/s需要乘以8。

    防火墙

    centos

    一、防火墙的开启、关闭、禁用命令

    (1)设置开机启用防火墙:

    systemctl enable firewalld.service
    
    • 1

    (2)设置开机禁用防火墙:

    systemctl disable firewalld.service
    
    • 1

    (3)启动防火墙:

    systemctl start firewalld
    
    • 1

    (4)关闭防火墙:

    systemctl stop firewalld
    
    • 1

    (5)检查防火墙状态:

    systemctl status firewalld
    
    • 1

    二、使用firewall-cmd配置端口

    (1)查看防火墙状态:

    firewall-cmd --state
    
    • 1

    (2)重新加载配置:

    firewall-cmd --reload
    
    • 1

    (3)查看开放的端口:

    firewall-cmd --list-ports
    
    • 1

    (4)开启防火墙端口:

    firewall-cmd --zone=public --add-port=9200/tcp --permanent
    
    • 1

    命令含义:

    –zone #作用域

    –add-port=9200/tcp #添加端口,格式为:端口/通讯协议

    –permanent #永久生效,没有此参数重启后失效

    注意:添加端口后,必须用命令firewall-cmd --reload重新加载一遍才会生效

    (5)关闭防火墙端口:

    firewall-cmd --zone=public --remove-port=9200/tcp --permanent
    
    • 1

    ubuntu

    1.查看防火墙当前状态

    sudo ufw status
    
    • 1

    2.开启防火墙

    sudo ufw enable
    
    • 1

    3.关闭防火墙

    sudo ufw disable
    
    • 1

    4.查看防火墙版本

    sudo ufw version
    
    • 1

    5.默认允许外部访问本机

    sudo ufw default allow
    
    • 1

    6.默认拒绝外部访问主机

    sudo ufw default deny
    
    • 1

    7.允许外部访问53端口

    sudo ufw allow 53
    
    • 1

    8.拒绝外部访问53端口

    sudo ufw deny 53
    
    • 1

    9.允许某个IP地址访问本机所有端口

    sudo ufw allow from 192.168.0.1
    
    • 1
  • 相关阅读:
    Rules1:模板类型推导
    北斗导航 | 基于奇偶矢量法的RAIM之SSE探索(附奇偶矢量法源代码)
    Ajax--初识Ajax--接口和案例 - 图书管理
    阿里国际、ebay测评自养号,如何看待自己产品的销量?
    【HarmonyOS】元服务服务卡片网络开发
    实践分享:30分钟在电脑端运行小程序
    气死了,过五关,斩六将,结果被 HR 捅了一刀!!
    【微客云】提供视频会员,猫眼,QQ音乐,百度网盘,wps,礼品卡等虚拟权益礼品卡券产品接口
    SpringBoot - SpringBoot整合i18n实现消息国际化
    python设计模式12:状态模式
  • 原文地址:https://blog.csdn.net/u012643122/article/details/126277675