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 ~]$
Pingback: How to identify Memory Botlenecks on Oracle Linux – SWIV