Странное использование памяти в Oracle Linux
У меня есть оракул Linux 7 под управлением Pentaho (Java-приложение). Эта машина имеет 23 ГБ оперативной памяти и повышает производительность Pentaho. Я пытаюсь настроить Java для выделения 10 ГБ оперативной памяти в Pentaho ( -Xms10240m). Но после того, как я начинаю пентахо, я получаю это.
biserver-ce]# free -g
total used free shared buff/cache available
Mem: 23 4 0 0 18 18
Swap: 9 0 9
Математика не совпадает (4 ГБ использованной памяти + 0 свободной памяти не равно 23 ГБ).
Память подкачки не используется, и я не понимаю, почему 18 Гб данных в кеше. На другой машине с таким же конфигом, но для тестирования это не происходит.
Процесс Java работает
root 12409 1 2 Jul26 ? 00:21:16 java - Djava.util.logging.config.file=/opt/pentaho/server/biserver-ce/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dserver -Xmx10240m -Xms10240m -XX:MaxPermSize=1024m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Dsun.jnu.encoding=utf-8 -Dfile.encoding=utf-8 -Djava.awt.headless=true -Djava.endorsed.dirs=/opt/pentaho/server/biserver-ce/tomcat/endorsed -classpath /opt/pentaho/server/biserver-ce/tomcat/bin/bootstrap.jar -Dcatalina.base=/opt/pentaho/server/biserver-ce/tomcat -Dcatalina.home=/opt/pentaho/server/biserver-ce/tomcat -Djava.io.tmpdir=/opt/pentaho/server/biserver-ce/tomcat/temp org.apache.catalina.startup.Bootstrap start
лимит конфигурации
#ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 190821
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 190821
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
РЕДАКТИРОВАТЬ:
После очистки кеша
echo 3 > /proc/sys/vm/drop_caches
Я могу запустить службу с 10 ГБ ОЗУ, но если я остановлю службу, кэш снова вырастет. Есть ли способ избежать очистки кэша вручную каждый раз, когда я останавливаю / запускаю службу?