下面是分析过程:先用 strace 跟踪 free 命令,看看它是如何计算 “buffers” 和 “cached” 的:显然 free 命令是从 /proc/meminfo 中读取信息的,跟我们直接读到的结果一样:那么 /proc/meminfo 中的 “Buffers” 和 “Cached” 又是如何得来的呢?
1. 核心监控指标解析为什么需要监控这些资源?CPU利用率:反映系统处理任务的繁忙程度,持续高负载可能导致服务延迟。内存占用:物理内存不足会触发Swap交换,显著降低性能。Swap使用率:频繁的Swap读写是系统“喘不过气”的红色警报。
TLB 是 MMU 中页表的高速缓存,由于进程的虚拟地址空间是独立的,而 TLB 的访问速度又比 MMU 快得多,因此通过减少进程的上下文切换,减少 TLB 的刷新次数,可以提高 TLB 缓存的使用率,进而提高 CPU 的内存访问性能;
buffers和cached被算在used里,因此第一行系统已使用内存used = buffers + cached + 第二行系统已使用内存used由于buffers和cached在系统需要时可以被回收使用,因此系统可用内存 = free + buffers + cached;
sysbench 是一个开源的、模块化的、跨平台的多线程性能测试工具,可以用来进行CPU、内存、磁盘I/O、线程、数据库的性能测试。目前支持的数据库有MySQL、Oracle和PostgreSQL。以下操作都将以支持MySQL数据库为例进行。1.
iostat:用于查看 CPU 使用率、磁盘 I/O 和网络 I/O 等系统统计信息。top 命令的屏幕输出分为多个区域:第一行是系统总体信息,包括系统当前时间、运行时间、登录用户数、系统负载平均值等。