IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:系统监控

共 24 篇相关文章

IT 累计浏览 2,366

TPS及计算方法

这篇围绕TPS(每秒事务数)及其计算方法展开。文章首先明确了TPS的基本定义,并通过一个简单示例说明了如何基于事务数量和响应时间(节拍)来计算。 接着,文章引入了经典的利特尔法则,并详细解释了其在生产环境中的应用逻辑。作者通过两个生动的示例——一个是关于并发服务器容量规划,另一个是排队问题——展示了如何利用该法则推导系统行为,指出提升性能的关键在于增加并发处理量或缩短处理时间。 更进一步,文章探讨了在负载模型中影响TPS的两个关键因子:响应时间和节拍。通过具体示例对比了当节拍为零与不为零时,TPS受谁主导,进而推导出负载模型中利特尔法则的扩展公式:系统内平均用户数 = (平均响应时间 + 思考时间)× 吞吐量。最后给出了一个具体的计算实例,清晰地呈现了各参数之间的关系。 掌握这些概念,对于准确进行性能评估与容量规划至关重要。

IT 累计浏览 2,189

假装很忙的三个命令行工具

这篇文章从一个有趣的观察切入:电影里那些酷炫的黑客屏幕,在现实中往往只是“假装很忙”的道具。作者调侃地介绍了三个开源命令行工具,来满足这种独特的“表演需求”。 第一个是 Genact,它能模拟内核编译、数字货币挖矿或文件下载等场景,让你的终端看起来一直在“努力工作”,甚至还能显示类似《模拟城市》的加载进度条。第二个是 Hollywood,它更简单粗暴,直接在终端里随机分屏,并快速切换显示 htop、目录树等看起来很忙碌的内容。第三个是作者最常用的 Blessed-contrib,它本质是个构建终端仪表盘的 Node.js 库,能轻松生成带图表和地图的数据可视化界面,填充上虚拟数据,科幻感直接拉满。 文章最后也提醒,这类工具更像是极客的玩笑,如果公司文化真的以“忙碌程度”评判员工,那本身就是一个亟待解决的问题。作者还提到了著名网络扫描工具 Nmap 因频繁出现在好莱坞电影中,甚至专门建了个页面来展示这些“出镜”记录。

IT 累计浏览 2,328

Linux lsof命令使用小结

这篇讲的是 Linux 系统中一个非常实用的诊断工具——lsof 命令。作者从“一切皆文件”的Linux设计哲学出发,点明了lsof能通过查看进程打开的文件列表,来实现对系统运行状态的监控与排错。 文章首先解释了lsof能查看到常规文件、网络连接(如TCP/UDP套接字)乃至硬件设备等各类“文件”,并拆解了其输出中COMMAND、PID、FD、TYPE、NAME等关键字段的含义,让读者能看懂命令返回的信息。 其核心价值在于提供了大量排查场景的实例命令。例如,可以用来查看哪个进程占用了特定文件(如/etc/passwd)、设备(如光驱)或端口(如80端口);也能反过来根据进程名(如sendmail)或用户(如tony)来查看其打开的所有文件资源。这些用法直击运维和开发中的常见痛点。 总的来说,文章从概念到输出解读,再到丰富的实战用例,系统性地小结了lsof的使用方法,为读者提供了一份即查即用的参考。

IT 累计浏览 1,964

非侵入式监控PHP应用性能监控分析

这篇讲的是如何在不触碰业务代码的前提下,对PHP应用进行性能监控。作者从“非侵入”这个实际需求出发,给出了从易到难的两种可行路径。 对于基础的请求耗时监控,最简单的方式是分析Nginx日志。文章清晰解读了日志中两个关键字段的区别:`$request_time`是端到端的总耗时,而`$upstream_response_time`则精准反映后端PHP处理的耗时。只需关注后者,就能快速定位PHP服务本身的性能瓶颈。 如果要深入分析单个请求内部的性能热点,文章详细介绍了使用xhprof扩展的完整方案。它不仅提供了xhprof的安装与配置步骤,其亮点在于展示了一套“无侵入”的部署技巧:通过Nginx的`auto_prepend_file`或php.ini配置,让监控脚本自动加载,实现了对业务代码的零修改。同时,方案还内置了按URL和超时时间智能采样的逻辑,避免了全量监控带来的性能开销。 整篇文章从日志层面的快速概览,到代码执行层面的精准剖析,形成了一套层次分明的监控方法论,为PHP开发者提供了实用的性能分析工具箱。

IT 累计浏览 1,962

使用Smem精确显示Linux下内存使用情况

Linux系统管理员常被“内存到底被谁吃了”这个问题困扰,尤其是当应用内存占用高但系统监控工具显示不清晰时。这篇文章介绍了一个利器——Smem。 Smem能提供比传统工具更精确的内存视图,它直接读取内核的内存映射,输出包括USS(进程独占内存)、PSS(按比例分摊的内存)和RSS等关键指标,让你一眼看清每个进程的真实“食量”。文中通过实际命令演示了它的多种用法:默认列出所有进程、用`-w`查看整体内存分布、或用`-up`按用户汇总内存占比。 文章还贴心地用图表和文字解释了VSS、RSS、PSS、USS的区别,点明了数值一般满足 VSS ≥ RSS ≥ PSS ≥ USS 的规律,帮你理解这些指标的实际意义。无论你是想排查内存泄漏,还是做容量规划,Smem都能提供更可靠的数据支撑。

IT 累计浏览 4,444

查询Linux系统最后重启时间的三个方法

这篇讲的是如何在Linux系统中快速查明最后一次重启时间。作者没有停留在单纯介绍命令,而是梳理了三种不同思路的方法,并对比了它们的直接程度和适用场景。 最直接的是`who -b`,一条命令就能清晰看到系统启动的日期和时间。而`last reboot`则提供了更丰富的历史视角,它通过“reboot”这个伪用户的登录记录,不仅能看到最近一次重启,还能回溯过去多次的启动历史,方便进行时间线分析。 `uptime`虽然不直接显示启动时间点,但巧妙地利用了“当前时间”和“已运行时长”这两个信息。通过简单相减,我们就能推算出启动时刻。这更像是一个实用的逆向推算技巧。 文章的价值在于,它不仅仅给了你三个“答案”,更是呈现了三种不同的技术思路:直接查询、历史追溯与间接推算。无论是运维人员想快速获取信息,还是开发者需要理解系统行为,都能从中找到适合当下场景的解法。掌握这些基本命令,能帮你更高效地与系统“对话”,摸清它的运行状态。

IT 累计浏览 1,921

标准化与可复用杂谈

这篇讲的是从一次具体的线上问题排查说起,引申出对软件工程中“标准化”与“可复用”的思考。作者描述了一个典型场景:用户反馈的问题经过层层传递,工程师最后发现是某台服务器在特殊情况下启动了错误版本,导致返回数据异常。这背后暴露的是从代码测试、服务调用到上线发布的全流程中,处处依赖人工细心所潜藏的高风险。 文章的核心观点在于,将全流程中那些不易变的单元(如测试、服务交互规范、发布步骤)进行标准化,并用程序来控制,可以从源头减少低级错误。作者以一个深度使用消息队列但因标准化和抽象不足,导致经验难以复用的团队为例,说明了这一点。同时,文章也对比了国内外对工程师严格要求的差异,指出在业务驱动、快速交付的压力下,形成高质量代码共识与推动标准化建设的不易。 文章的启发在于,它并非空谈架构,而是从运维和开发的共同痛点出发,论证了标准化对于解放工程师精力、提升系统可靠性的实际价值,尤其适合那些正被重复性故障和低效协作困扰的技术团队反思。

IT 累计浏览 1,605

监控Netstat中的TCP数据

作者从实际运维中遇到的netstat报错说起:当执行netstat命令时,若版本较旧可能触发“error parsing /proc/net/netstat”错误。解决方法是通过rpm确认netstat属于net-tools包,随后用yum升级即可修复。不过,文章的重点不止于故障排查,更延伸到如何有效监控TCP连接数据。 作者指出,直接监控netstat -s输出的绝对值(如连接数、段收发量)在Graphite等工具中几乎是一条平直线——因为数值基数太大,微小波动肉眼无法识别。真正有价值的是捕捉这些数据的相对变化率。为此,他分享了一段可直接运行的Shell脚本,通过循环对比相邻时刻的TCP统计值,实时输出增量数据,让监控图表清晰反映系统的动态趋势。 这篇文章从一个具体错误入手,最终给出了提升监控有效性的实用技巧,对需要关注TCP连接状态的运维人员颇具参考价值。

IT 累计浏览 2,747

Linux系统巡检常用命令

这篇讲的是Linux系统日常巡检的“工具箱”,作者把运维中最常敲的几十条命令按用途做了梳理。从用`uname -a`和`cat /proc/cpuinfo`摸清系统底牌,到用`free -m`、`df -h`、`top`实时监控内存、磁盘与进程状态,再到借助`netstat`、`iptables`、`ifconfig`快速扫描网络连通性与安全设置——几乎覆盖了服务器健康检查的所有关键维度。 文章特别指出,像`uptime`和`cat /proc/loadavg`这样的组合,能让你同时看清系统负载与运行时长;而`ps -ef`配合`w`命令,既能看到全部进程,也能锁定当前登录的活跃用户。对于需要回溯问题的场景,`last`查看登录日志、`dmesg`排查硬件启动信息这些命令也都没落下。整份清单直接贴进终端就能用,省去了新手翻文档的时间,对需要快速上手Linux运维的人尤其友好。

IT 累计浏览 6,550

Linux下CPU的利用率

这篇讲的是如何真正理解Linux系统下CPU时间的构成,从而看懂利用率背后的含义。文章从内核时间基础切入,解释了HZ(时钟中断频率)、tick(中断间隔)和jiffies(中断累计次数)这几个关键概念,为你打下理解的底子。 核心部分是将CPU时间拆解得明明白白:它并非一个整体,而是由用户态(User time、Nice time)、内核态(System time、Hardirq time、Softirq time)以及等待(Waiting time)、空闲(Idle time)和虚拟机偷取(Steal time)时间共同组成。文章直接给出了计算公式,让你能一一对应`top`命令输出中那些让人困惑的`%us`、`%sy`、`%id`等百分比,原来它们分别代表了不同时间段的占用情况。 作者最后指明,`top`、`iostat`、`vmstat`这些常用工具的数据源头都是`/proc/stat`文件,其中的时间单位就是tick。搞清楚这些组成,当看到系统卡顿时,你才能从高企的`%sy`判断是内核子系统瓶颈,还是从高`%wa`看出是I/O等待拖了后腿,让性能分析有据可依。

IT 累计浏览 3,804

快速查看服务器硬件配置信息

这个脚本的目标很明确:为运维和开发人员提供一个一键式工具,快速获取Linux服务器的硬件与系统概况。它从几个关键维度着手,条理清晰。 首先,它智能识别操作系统发行版,无论是通过`lsb_release`还是直接读取`/etc/issue`,确保兼容性。接着,脚本深入`/proc/cpuinfo`和`/proc/meminfo`,提取CPU型号、物理颗数、核心数、逻辑处理器数,以及内存总量、交换空间、缓存等详细数据。对于磁盘信息,它整合了`fdisk`和`df`命令的结果,给出物理磁盘概况与各分区使用情况。 脚本的一个巧妙之处在于对64位系统的判断逻辑——通过检查CPU是否支持`lm`(长模式)标志,而非直接依赖系统位数。整个实现大量运用了管道和`awk`/`sed`进行文本处理,逻辑连贯,输出格式用等号线分隔,清晰易读。 对于需要快速摸底新服务器配置,或进行批量巡检的团队来说,这个脚本提供了一个非常直接、可立即落地的方案。它省去了手动拼接多个命令的麻烦,将分散的信息点整合成一份完整的“体检报告”。

IT 累计浏览 11,748

Linux Used内存到底哪里去了?

这篇讲的是Linux运维中一个经典困惑:用`free`命令看到内存已用7-8G,但`ps aux`统计的进程RSS总和却不到30M,多出的内存到底去哪了? 作者从同事的实际问题出发,逐步拆解。先解释`free`输出的含义,指出buffer/cache虽被计入used但可回收;然后通过工具如nmon、top分析,发现进程RSS确实占了大头,但还有剩余。进一步揭示内核开销:slab缓存用于对象池,通过`slabinfo`计算消耗了约900MB;页表管理物理页面,从`/proc/meminfo`读取占了58MB;加上struct page等固定消耗。通过编写脚本累加进程RSS、页表和slab,结果与`free`的used基本吻合,但略多171MB,原因是RSS计算中共享库被重复计算。 文章最后澄清了内存计算的迷糊账,教会读者如何用`slabinfo`、`/proc/meminfo`等工具自查,理解Linux内存管理的底层细节。对于遇到类似问题的开发者,这是一次清晰的排查示范。

IT 累计浏览 3,763

SWAP的罪与罚

这篇讲的是如何深入理解并驾驭Linux系统中的SWAP机制,它从一个因内存耗尽引发SWAP,最终导致Apache服务宕机的真实案例切入,点明了SWAP既是“性能大事”,也可能成为“系统杀手”。文章并非泛泛而谈,而是系统性地介绍了监控SWAP的工具链与深层诱因。 作者详细对比了不同场景下的监控手段:`free`和`sar`命令适合查看整体使用快照与历史趋势;`vmstat`则能实时刷新,其`si`(换入)和`so`(换出)字段是观察SWAP活动的关键指标。更棘手的是查看具体进程的SWAP占用,文章指出了`top`命令中SWAP字段的计算方式(VIRT-RES)并不可靠,转而提供了一个通过解析`/proc/[pid]/smaps`文件的Shell脚本,这能给出更准确的数据。 更深层次的剖析在于那些“看似内存充裕却仍发生SWAP”的诡异现象。文章解释了`swappiness`参数(默认60)如何影响内核在回收缓存与执行SWAP间的权衡,以及NUMA架构下因局部节点内存不足而触发的“SWAP Insanity”。对于NUMA问题,文章给出了通过`numactl --interleave=all`等命令进行规避的明确方法。 文章最后以YouTube曾采取“删除SWAP”的极端方案为例,提醒读者此法风险极高,一旦内存耗尽会直接触发OOM。它更推荐我们主动监测、理解根源(如调整swappiness、优化NUMA配置),而非鲁莽地移除这个安全缓冲。整体上,这篇文章为运维与开发人员提供了一份关于SWAP的实用避坑指南。

IT 累计浏览 3,365

top监控命令在FreeBSD上的使用

这篇讲的是如何在FreeBSD系统上高效使用`top`这个实时进程监控工具。它不只是列出CPU占用高的进程,更详细拆解了FreeBSD版本特有的选项和输出含义,帮助系统管理员深入理解系统状态。 文章核心剖析了`top`运行时屏幕显示的三个关键部分。首先是系统概览,解释了“load averages”(负载平均值)和各状态进程数的意义,指出当单个CPU的运行任务数大于5时可能预示性能问题。其次是内存信息,细致区分了Active(活动页)、Wired(已写入页)、Cache(缓存)等状态的含义,以及交换区的使用情况,让读者能准确判断内存压力来源。最后是进程列表,逐一解读了PRI(优先级)、NICE(nice值)、SIZE与RES(内存占用)、以及%WCPU/%CPU(CPU利用率)等每一列数据的具体所指。 此外,文章还介绍了交互模式下可用的控制命令,如按`o`排序、按`k`终止进程等,以及如何通过`-S`、`-b`、`-I`等选项定制监控输出,例如显示系统进程或隐藏空闲进程。掌握这些细节,能让你在FreeBSD上用好`top`,进行快速的性能分析与问题定位。

IT 累计浏览 2,343

关于sar的一个问题: Invalid system activity file

这篇讲的是在使用Linux性能分析工具SAR时遇到的一个棘手报错:“Invalid system activity file”。作者从一次服务器故障排查的实战场景出发,详细记录了当SAR无法正常读取历史数据文件时的排查思路。 问题表现为系统明明配置了数据采集,但执行`sar -f`命令查看历史负载时,总会提示活动文件无效,导致无法回溯性能数据。作者首先排除了文件路径和权限这类基础配置问题,随后将焦点锁定在了数据文件本身。经过深入分析,发现根因在于系统时间的不正确跳变——一次非预期的NTP时间同步导致系统时间短暂回退,而SAR在记录数据时生成了时间戳异常的文件段,从而引发了后续的校验失败。 文章不仅给出了修复已有损坏文件的方法(例如使用`sa1`工具重新转换),更重要的是分享了预防性建议:确保系统时间同步服务稳定,并在关键服务器上为SAR的日志轮转和存储路径做好规划。这些经验对于需要长期监控服务器健康状态的运维人员来说,提供了切实的避坑参考。

IT 累计浏览 2,181

Iostat看不到设备统计信息的原因分析

这篇讲的是一个让不少运维同学头疼的实际问题:在使用iostat监控磁盘性能时,新上的高速SSD或NVRAM设备却悄无声息,统计信息里完全找不到它们的身影。 作者从实际玩设备时发现的这个“异常”出发,没有停留在表面,而是深入系统层进行了剖析。核心在于,Linux的iostat依赖于内核的块层统计框架,而一些超高速或新型的存储设备(如某些NVMe设备或通过特殊方式暴露的NVRAM),可能没有正确注册或使用标准的统计接口,导致它们从iostat的“观测雷达”上消失了。文章拆解了其中的机制,指出了从设备驱动到内核统计计数器之间的关键环节可能存在的问题。 搞清楚“为什么看不到”之后,作者也给出了排查的思路和可行的解决方向,比如检查特定内核参数或使用更底层的工具来绕过限制。对于正在折腾高性能存储或遇到类似诡异情况的工程师来说,这篇分析提供了一次从现象到根因的完整排查路径。

IT 累计浏览 2,662

Linux系统内存相关信息获取

这篇讲的是服务器性能优化中一个常被提及却又容易忽视的核心——内存管理。作者从数据库服务器的典型瓶颈切入,指出CPU、内存和IO中,内存的不可再生属性使其成为最值得精细规划的资源,其效率直接决定了整体性能。 文章聚焦于一个实际问题:如何系统性地获取Linux内存使用情况?它没有空谈理论,而是直指实践路径。从内核暴露的 `/proc/meminfo` 接口,到用户态常用的 `free`、`vmstat` 等命令,再到如何解读 `cached` 和 `buffer` 等关键指标,梳理得清晰明了。这对于需要排查内存泄漏、评估应用负载或进行容量规划的运维与开发人员来说,提供了扎实的操作指引。 掌握这些信息获取与解读方法,相当于为服务器健康装上了一个实时仪表盘,能帮助你更科学地决策,避免因内存成为隐蔽的“短板”而影响全局服务。

IT 累计浏览 3,142

Linux高速缓存使用率调查

这篇讲的是Linux系统中一个关键却常被忽略的性能指标调查:pagecache的利用率。文章直接切入核心矛盾——虽然我们都知道pagecache对磁盘I/O性能至关重要,但在实际生产环境中,它的整体使用率究竟如何?作者的视角没有停留在系统全局的宏观数据,而是进一步具体化到每个物理设备上,考察了缓存在不同设备间的分配与命中情况。 调查揭示了一个普遍存在的现象:整体的pagecache使用率可能看起来健康,但具体到单个设备时,其缓存分配、访问热度与命中率可能存在巨大差异。这种不均衡的利用状态,正是许多系统性能调优和故障排查中容易忽略的盲点。文章通过这种具体到设备粒度的分析,为我们理解系统I/O行为和优化资源分配提供了更精细的观测维度。它提醒我们,在关注整体缓存水位的同时,深入审视每个设备的缓存健康状况,往往是定位性能瓶颈的关键一步。

IT 累计浏览 3,853

Grid Control监控-进程累积导致的宕机

这篇讲的是一个真实的生产环境故障案例。某用户的Oracle 10g(10.2.0.4)数据库运行在HP平台上,突然遭遇大量系统进程累积,最终导致数据库完全挂起,业务中断。文章详细追溯了这一严重故障的排查与解决过程。 核心问题被定位到Grid Control监控代理(agent)上。在特定条件下,代理进程会发生异常堆积,消耗掉系统资源,直至拖垮整个数据库实例。作者不仅清晰地剖析了故障现象与直接原因,还给出了具体的处置步骤和后续的预防措施,比如监控脚本的优化与进程的定期清理。 对于维护老旧Oracle环境的工程师来说,这是一个极具参考价值的“坑”。它提醒我们,监控工具本身也可能成为风险的源头,定期的健康检查与资源监控至关重要,能有效避免这类由周边组件引发的宕机事故。

IT 累计浏览 4,364

Linux 查看机器配置信息

这篇文章从一个实际需求出发:如何快速获取Linux服务器的硬件配置信息。作者直接给出了一个非常实用的命令 `cat /proc/cpuinfo`,并解读了这个命令输出中的关键字段。通过查看这个文件,你可以立刻了解到CPU的型号名称、核心数、线程数、主频、缓存大小等详细参数,而无需安装任何额外工具。 对于系统管理员或开发人员来说,这是在部署应用、进行性能调优或排查问题时,快速摸清机器“家底”的必备第一步。文章聚焦于这一个具体而高效的技巧,省去了复杂的理论,直接展示了如何利用系统自带的信息来完成配置核查。