一、Linux 系统 Cache 概述

在 Linux 系统中,Cache(缓存)是提升系统性能的关键机制之一。它主要用于临时存储频繁访问的数据,减少对慢速存储设备(如硬盘)的直接访问,从而加快数据读写速度。

二、相关工具介绍

1、pcstat 工具

此工具可以查看指定文件缓存的命中率情况。

代码语言:shell

AI代码解释

[root@test ~]# pcstat /var/log/messages
|-------------------+----------------+------------+-----------+---------|
| Name              | Size           | Pages      | Cached    | Percent |
|-------------------+----------------+------------+-----------+---------|
| /var/log/messages | 188784         | 47         | 47        | 100.000 |
|-------------------+----------------+------------+-----------+---------|
[root@test ~]# 

输出的结果:

Size: 文件的总大小。这是文件在硬盘上的完整大小。

Pages: 文件大小对应的内存页数。在大多数 Linux 系统中,一个内存页的大小是 4KB,所以这个数值是文件大小除以4KB的结果。

Cached: 文件在内存中的缓存页数。这是当前被操作系统缓存的该文件的部分大小(以内存页为单位)。

Percent: 文件被缓存的百分比。这个百分比是 Cached 除以 Pages 的结果

2、cachetop 工具

此工具可以查看页面缓存的命中/非命中情况,具体到每个进程。

代码语言:shell

AI代码解释

[root@test ~]# cachetop 1
18:39:26 Buffers MB: 86 / Cached MB: 246 / Sort: HITS / Order: ascending
PID      UID      CMD              HITS     MISSES   DIRTIES  READ_HIT%  WRITE_HIT%
     526 root     auditd                  4        0        0     100.0%       0.0%
     291 root     jbd2/vda1-8             7        2        5      22.2%      22.2%
   27571 root     sleep                   9        0        0     100.0%       0.0%
   27632 root     sleep                   9        0        0     100.0%       0.0%
   27667 root     sleep                   9        0        0     100.0%       0.0%
   27561 root     bash                   26        0        0     100.0%       0.0%
   27622 root     bash                   26        0        0     100.0%       0.0%
   27649 root     bash                   26        0        0     100.0%       0.0%
   27562 root     bash                   49        0        0     100.0%       0.0%
   ................

输出的结果:

PID:进程pid

UID:进程用户

CMD:进程运行的命令

HITS :缓存命中的次数

MISSES :表示缓存未命中的次数

DIRTIES, 表示新增到缓存中的脏页数

READ_HIT%:读操作缓存命中率

WRITE_HIT%:写操作缓存命中率

3、cachestat工具

此工具是显示整个文件系统的命中率情况。

代码语言:shell

AI代码解释

[root@test ~]# cachestat 1
    HITS   MISSES  DIRTIES HITRATIO   BUFFERS_MB  CACHED_MB
   41170        0      184  100.00%           75        197
   32249        1       78  100.00%           75        197
   31991        0       87  100.00%           75        197
   43034        2      116  100.00%           75        197
   27862        0       76  100.00%           75        197
   38632        0      108  100.00%           75        197
   34518       74      214   99.79%           75        197
   32084        0       68  100.00%           75        197
   46494        0      138  100.00%           75        197
   35349        0       74  100.00%           75        197

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐