How the cached memory improve the system performance

Este artigo apenas reproduz um teste documentado no Oracle Note “Oracle Linux: System Memory Utilization (Doc ID 1514705.1)“. Como um bom profissional de TI, é sempre bom ler a documentação e ver se realmente funcionam como dizem que funcionam.

Ambiente de lab:

[oracle@oel7 ~]$ cat /etc/*release*
Oracle Linux Server release 7.7
NAME="Oracle Linux Server"
VERSION="7.7"
ID="ol"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="7.7"
PRETTY_NAME="Oracle Linux Server 7.7"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:oracle:linux:7:7:server"
HOME_URL="https://linux.oracle.com/"
BUG_REPORT_URL="https://bugzilla.oracle.com/"

ORACLE_BUGZILLA_PRODUCT="Oracle Linux 7"
ORACLE_BUGZILLA_PRODUCT_VERSION=7.7
ORACLE_SUPPORT_PRODUCT="Oracle Linux"
ORACLE_SUPPORT_PRODUCT_VERSION=7.7
Red Hat Enterprise Linux Server release 7.7 (Maipo)
Oracle Linux Server release 7.7
cpe:/o:oracle:linux:7:7:server

O espaço reservado para Cache é 4.5GB:

[oracle@oel7 ~]$ cat /proc/meminfo
MemTotal:       16150712 kB
MemFree:        10339348 kB
MemAvailable:   11609716 kB
Buffers:           18732 kB
Cached:          4556112 kB

...

[oracle@oel7 ~]$ free -m
              total        used        free      shared  buff/cache   available
Mem:          15772        1163       10093        3101        4515       11333
Swap:          1231           0        1231
[oracle@oel7 ~]$

Criando um arquivo com 500Mb, e analisando que nossa área de cache aumenta esse mesmo espaço:

[oracle@oel7 ~]$ dd if=/dev/zero of=/tmp/test.img bs=1M count=500
500+0 records in
500+0 records out
524288000 bytes (524 MB) copied, 1.07127 s, 489 MB/s
[oracle@oel7 ~]$
[oracle@oel7 ~]$ cat /proc/meminfo
MemTotal:       16150712 kB
MemFree:         9814132 kB
MemAvailable:   11596152 kB
Buffers:           19048 kB
Cached:          5060348 kB

...

[oracle@oel7 ~]$ free -m
              total        used        free      shared  buff/cache   available
Mem:          15772        1166        9584        3101        5021       11324
Swap:          1231           0        1231
[oracle@oel7 ~]$

Considerando que o arquivo está na área de Cache, vamos simular uma operação de I/O no mesmo, coletando o tempo:

[oracle@oel7 ~]$ time cat /tmp/test.img >/dev/null

real    0m0.162s
user    0m0.007s
sys     0m0.155s
[oracle@oel7 ~]$

Realizando o drop da memória cache, de modo que o arquivo não esteja mais nela:

[root@oel7 ~]# echo 3 > /proc/sys/vm/drop_caches
[root@oel7 ~]#
[oracle@oel7 ~]$ free -m
              total        used        free      shared  buff/cache   available
Mem:          15772        1159       12970        1146        1641       13301
Swap:          1231           0        1231
[oracle@oel7 ~]$

Refazendo o teste e percebendo realmente a diferença de performance:

[oracle@oel7 ~]$ time cat /tmp/test.img >/dev/null

real    0m4.977s
user    0m0.008s
sys     0m0.379s
[oracle@oel7 ~]$

1 thought on “How the cached memory improve the system performance”

  1. Pingback: How to identify Memory Botlenecks on Oracle Linux – SWIV

Leave a Comment

Your email address will not be published.