尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Linux系统中5分钟内找出问题
1. 先看整体健康状况和内核日志直接排除硬件故障或内核panic。# 1. 查看 Load Average 是否远超 CPU 核心数和 系统运行时间uptime# 2. 看available可用内存是否见底。看swap是否被大量占用。如果 swap 正在被频繁读写说明物理内存早已被榨干系统正处于极度卡顿的“颠簸”状态。free -h# 3. 【最重要】查看内核最后输出的几十条日志硬件错误、OOM、磁盘报错dmesg -T | tail -20快速判断若dmesg出现Out of memory、I/O error、segfault直接定位根因不用往下看2. cpu、内存、进程sudo ps aux | sort -rn -k 3 | headsort -rn -k 3该命令中的-rn的r表示是结果倒序排列n为以数值大小排序而-k 3则是针对第3列的内容进行排序第三列是 cpu第四列是内存再使用head命令获取默认前10行数据。(其中的|表示管道操作)如果free -h显示可用内存available很少且交换分区swap使用量飙升说明内存压力大。# 查看内存占用 TOP 10 的进程按RSS排序 sudo ps aux --sort-%mem | head -10 # 查看具体内存映射若怀疑某个进程 cat /proc/[PID]/smaps | grep -i pss | sort -nr | head -10提示如果系统突然变慢但内存剩余较多检查cat /proc/meminfo | grep -i Dirty脏页过多说明磁盘I/O刷写阻塞了内存分配。按内存升序排列ps aux --sortrss按CPU降序排列ps aux --sort-%cpu--sort[|-] key“”字符是可选,因为默认地是按数字升序或者词典顺序.toptop -d 1按P按 CPU 使用率排序按M按内存使用率排序运行中按c可以随时切换是否显示完整命令 【常用】点亮显示先按b 再按x按z 反色显示按 找帮助在 top 中紧盯这三项%us用户态高 → 业务应用如Java/Python死循环或计算密集。%sy内核态高20%→ 系统调用频繁可能是上下文切换过高用vmstat 1 5查看cscontext switch列。%waI/O等待高 →CPU在等磁盘问题转向下面的磁盘排查。僵尸进程zombie数量不为0用ps aux | grep Z找出父进程。看top里排在最前面的进程PID看它是 CPU 飙高还是处于D状态不可中断睡眠通常意味着卡在磁盘 I/O 上。3. 磁盘如果top中%wa高或者应用响应卡顿立即执行# -x 显示扩展信息1 表示间隔1秒2 表示输出2次iostat -x 1 2iostat -dxk 1vmstat 1看vmstat的procs下面的b列等待输入输出的进程数。如果b大于 0说明有进程卡在磁盘写入上。关键列%util接近 100% → 磁盘设备饱和带宽打满。await平均等待时间 20ms 表明磁盘响应慢 100ms 表明严重I/O拥堵。查找具体哪个进程在读写sudo iotop -o直接列出实际产生I/O的进程。df -h -x tmpfs -x devtmpfsdf -i看是否有分区的Use%达到了100%看IUse%Inode 使用率是否达到了 100%df -T这是最直接的方法可以查看所有已挂载文件系统的类型cat/proc/filesystems查看系统支持的文件系统类型。如果一个文件系统被标记为nodev表示它不需要关联物理设备如虚拟文件系统、网络文件系统案例磁盘爆满使用率已经100%了、I/O 锁死或根目录极度迟钝时怎么找出哪个目录过大解决方法的核心逻辑是通过将底层块设备挂载到一个干净、全新的挂载点如/mnt绕过了原有挂载点上可能存在的繁重业务 I/O 读写和软链接干扰。在 Linux 运维中被称为“影子挂载”或“双重挂载”。它的核心精妙之处在于在 Linux 中同一个底层块设备Block Device是可以同时被挂载到多个不同的目录挂载点上的。[rootkaifa ~]# df -h Filesystem Size Used Avail Use% Mounted on ... /dev/mapper/cl-root 37G 17G 21G 46% / /dev/sdb2 976G 164G 745G 19% /var正常状态下/dev/sdb2挂载在/var上。所有业务程序如 Nginx、MySQL都通过/var这扇大门向磁盘写入数据。此时这扇门人满为患I/O 请求排起长队大门文件系统元数据锁被严重占用。影子挂载后你执行mount /dev/sdb2 /mnt相当于为同一个物理盘又开了一扇叫/mnt的“后门”。当你通过/mnt进去时你看到的内容和/var完全一样但你走的是一条完全没有业务流量堵塞的专用绿色通道。为什么能绕过“繁重的业务 I/O 读写”当磁盘 100% 满且有程序疯狂写入时原挂载点如/var会面临严重的元数据锁Metadata Lock竞争。在原目录查找的困境如果你直接在/var下执行du -sh系统不仅要读取文件大小还要频繁与正在疯狂写入的业务进程竞争目录的读取锁。由于 I/O 已经满载du命令发送的内核请求只能在队列里死等表现出来就是命令完全卡死。在影子目录查找的优势文件系统如 Ext4、XFS内部有不同的路径缓存和索引机制。通过/mnt访问时你避开了原目录树Directory Tree上被高频修改的节点锁。虽然底层的物理磁头/固态硬盘通道依然繁忙但在操作系统内核的软件层面你成功绕过了严重的进程上下文切换和文件锁挂载点阻塞从而能以快得多的速度返回结果。处理过程# 配合“只读挂载ro”实现完美隔离 mount -o ro /dev/sdb2 /mnt 或者 mount /dev/sdb2 /mnt mount --bind /dev/sdb2 /mnt # 挂载成功后你就可以直接进入 /mnt/ 开启你的超速排查通道了 du -h -x --max-depth1 /mnt/ 2/dev/null | sort -hr | head -n 10 # 加上 -x (或 --one-file-system) 参数可以让 du 只在当前文件系统内扫描绝对不跨越到其他分区或挂载点 find / -xdev -type f -size 500M 2/dev/null | xargs du -h | sort -hr | head -n 10 # -xdev同样是限制在当前文件系统内不跨分区。 方法一 find -maxdepth 1 -print0 | xargs -0i du -hs {} | sort -rh | head -11 | cut -f2 | xargs -i du -hs {} # find -maxdepth 1 -print0在当前目录深度为 1不往子目录深挖查找所有文件和文件夹。-print0 表示用 \0空字符作为分隔符这是为了防止文件名里有空格导致命令断开。 # xargs -0i du -hs {}-0 配合前面的 print0 接收空格文件名i 和 {} 配合把前面找到的路径一个一个喂给 du -hs计算人类可读的大小如 1G, 500M。 mount /dev/sdb2 /mnt/ cd /mnt/ find -maxdepth 1 -print0 | xargs -0i du -hs {} | sort -rh | head -11 | cut -f2 | xargs -i du -hs {} cd umount /mnt/ exit 方法二 根据cat /etc/fstab |grep -v ^# 排除不是真正在/ 目录的文件特别地 要去掉bind方式挂载的目录。 du -h /* --max-depth0 \ --excludehome \ --excludevar \ --excluderesult \ --excludepkg \ --excludecephfs 2/dev/null | grep G找出已被删除但仍被进程占用的文件lsof L1# 或者使用下面这个更直观的命令lsof | grep deleted输出结果中会显示进程名COMMAND、进程 PID 以及被删除的文件名带有(deleted)字样。抓到罪魁祸首比如 PID 为1234的 nginx 进程后你有两种处理方式1. 重启该服务或让其重载配置。2. 在线清空如果不能重启服务如果该进程在持续写入且不能停机可以通过它的 PID 直接在/proc目录下将其文件内容清空#文件描述符 ID 可以在lsof的FD列看到通常是个数字echo /proc/1234/fd/文件描述符ID# 或者不删文件释放空间echo /var/log/app.log /var/log/app.log# 用chattr锁死文件不准任何进程写入chattr i /var/log/app.log# 解锁chattr -i /var/log/app.log4. 网络如果应用返回超时或连接失败快速检查网络层面。# 1. 查看所有监听端口及连接状态比 netstat 快ss -tulnp# 2. 统计 TIME_WAIT 或 CLOSE_WAIT 堆积大量 CLOSE_WAIT 是代码未关闭连接ss -ant | awk {print $1} | sort | uniq -csudo ss -antp | grep CLOSE-WAIT | awk {print $NF}# 3. 检查网卡丢包和错误eth0替换为实际网卡名ip -s link show eth0特殊情况如果ifconfig显示overruns或dropped数量暴增说明网卡缓冲区不足或硬件队列溢出。查看 TCP 汇总ss -s -t查看 UDP 汇总ss -s -uss -s快速查看整机所有网络连接数量概览排查 TIME_WAIT、连接数过高问题。是否有大量的TIME-WAIT遭遇并发洪峰或CLOSE_WAIT应用程序代码网络泄漏。5. 其它sudo grep -RniE critical|error|fatal|panic|exception /var/log/messages | grep -v ACPI Error ps -ef |grep thanos sudo grep -E thanos\[12096\]: /var/log/messages # 查看是否有 D 状态进程重点看 WCHAN 栏卡在哪个内核函数如 rwsem_down_write_failed, blk_wait_io, 进程正在内核中等待什么资源显示等待的内核函数名 ps -eo pid,ppid,stat,wchan,comm | grep -w D # 查看 I/O 队列长度和等待时间如果 await 达到几百毫秒甚至上千毫秒说明 I/O 彻底挂了 iostat -x 1 106. 查看Linux上启用的服务需求推荐命令 (systemd系统)备选命令 (SysVinit系统)查看正在运行的服务systemctl list-units --typeservice --staterunningservice --status-all查看开机自启的服务systemctl list-unit-files --typeservice --stateenabledchkconfig --list查看特定服务的状态systemctl status 服务名service 服务名 status如果不确定你的系统使用的是systemd还是SysVinit可以运行pstree -p | head -n 2或ps -p 1来查看。如果输出中包含systemd则说明系统使用的是systemd。
RELATED

相关推荐

使用开源工具构建面向IoT-边缘-云连续体的低成本网络数字孪生

使用开源工具构建面向IoT-边缘-云连续体的低成本网络数字孪生

大家读完觉得有帮助记得关注和点赞!!!摘要 在不中断实时基础设施的情况下,验证IoT-边缘-云环境中的网络配置并测试故障场景,仍然是一个开放的操作挑战。本文介绍了一种用于IIoT边缘部署的低成本、完全开源的网络数字孪…

📅 2026/10/18 22:01:44
渗透测试视角:TCP/IP 协议栈核心知识

渗透测试视角:TCP/IP 协议栈核心知识

渗透测试视角:TCP/IP 协议栈核心知识🔥 与OSI的区别:OSI是理论模型(7层),TCP/IP是实际应用模型(4层)。渗透测试中,99%的网络攻击发生在TCP/IP的应用层和传输层&#xff0…

📅 2026/10/8 4:45:53
第16章:CesiumJS 从入门到精通16:城市滤镜:3D Tiles Styling 与瓦片交互

第16章:CesiumJS 从入门到精通16:城市滤镜:3D Tiles Styling 与瓦片交互

本专栏系统讲解 Cesium 三维地球前端开发,循序渐进搭建完整 GIS 数字孪生知识体系 上一篇:CesiumJS 从入门到精通 15:海量模型加载:3D Tiles 核心原理与性能调优 写在前面 上一章掌握 3D Tiles 瓦片集加载、坐标变换、LOD 性能调优,只能实现三维模型基础展示;真实数字孪…

📅 2026/9/10 2:00:53
MORE NEWS

更多资讯

📰

从零实现Linux Shell解释器:系统编程实战指南

1. 项目概述:打造自己的Shell命令行解释器在Linux系统中,Shell作为用户与内核交互的桥梁,其重要性不言而喻。但你是否想过,这个每天都要打交道的命令行界面,其内部究竟是如何工作的?今天我们就来动手实现一…

📰

YOLO26目标检测框架:工业级极速优化与部署实战

1. YOLO26核心特性解析:为工业落地而生的极速检测框架YOLO26作为目标检测领域的最新力作,其设计理念直击产业痛点——在保持YOLO系列高精度的同时,通过架构级优化实现前所未有的推理速度。我在实际部署测试中发现,相比前代模型&am…

📰

DIY专业证件照:手机拍摄与PS修图全攻略

1. 为什么需要在家制作专业证件照?最近三年,我帮家人朋友处理过47次证件照需求。从签证申请到工作入职,每次冲印店拍摄的平均花费是68元,而电子版加修图还要额外支付30-50元。更糟心的是,有次紧急需要2寸白底照&#x…

📰

RAG技术中向量检索引擎选型与优化实践

1. RAG技术中的向量检索引擎选型困境第一次接触RAG(Retrieval-Augmented Generation)架构时,我像大多数开发者一样,被琳琅满目的向量检索引擎选项晃花了眼。FAISS、HNSW、BM25这些名词在技术文档里频繁出现,但究竟哪个…

📰

从零实现Linux Shell解释器:原理与实践

1. 从零实现一个Linux Shell解释器在Linux系统管理中,Shell作为用户与内核交互的桥梁,其重要性不言而喻。当我第一次在终端输入ls命令并看到文件列表时,就对这个"魔法"背后的原理产生了浓厚兴趣。本文将带你深入Shell解释器的内部机…

📰

智能阀门与新材料技术驱动工业变革

1. 阀门行业现状与变革驱动力阀门作为工业管路系统的"心脏起搏器",其开闭动作直接决定了流体介质的生命线。过去三年全球阀门市场规模以4.3%的年复合增长率稳步扩张,2023年达到820亿美元规模。这个看似传统的领域正经历着三重变革冲击&#xf…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬