我在运行 Ubuntu 14.04 的 AWS 微型服务器上运行 Apache Tomcat 和 Geoserver,该服务器.WAR
具有 1 GB RAM 和 ~700 MB 交换空间,我担心我的 RAM 使用情况,因为它溢出到我的交换空间中。
以下是在我的 中运行的前两个不同的命令htop
,按 排序MEM%
:
CPU[| 0.7%] Tasks: 80, 289 thr; 1 running
Mem[||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||770/992MB] Load average: 0.00 0.01 0.05
Swp[||||||||||||||||||||||||||||||||||||||||||||||||| 369/634MB] Uptime: 43 days, 12:50:37
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
16050 tomcat 20 0 1710M 586M 4584 S 0.0 59.1 0:04.48 jsvc.exec -java-home /opt/bitnami/java -user tomcat -pidfile /opt/bitnami/apache-tomcat/temp/catalina.pid -wait 10 -outfile /opt/bitnami/apache-tomcat/logs/catalina-daemon.out -errfile &1 -classpath /opt/bitnami/apache-tomcat/bin/bootstrap.jar:/opt/bitnami/apache-tomcat/bin/commons-daemon.jar:/opt/bitnami/apache-tomcat/bin/tomcat-juli.jar -Djava.util.logging.config.file=/opt/bitnami/apache-tomcat/conf/logging.properties -XX:MaxPermSize=256M -Xms256M -Xmx512M -Djava.awt.headless=true -XX:+UseG1GC -Dfile.encoding=UTF-8 -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs= -Dcatalina.base=/opt/bitnami/apache-tomcat -Dcatalina.home=/opt/bitnami/apache-tomcat -Djava.io.tmpdir=/opt/bitnami/apache-tomcat/temp org.apache.catalina.startup.Bootstrap
(x50)
1521 mysql 20 0 273M 8296 0 S 0.0 0.8 1:59.92 /opt/bitnami/mysql/bin/mysqld.bin --defaults-file=/opt/bitnami/mysql/my.cnf --basedir=/opt/bitnami/mysql --datadir=/opt/bitnami/mysql/data --plugin-dir=/opt/bitnami/mysql/lib/plugin --user=mysql --lower-case-table-names=1 --log-error=/opt/bitnami/mysql/data/mysqld.log --pid-file=/opt/bitnami/mysql/data/mysql/data/mysqld.pid --socket=/opt/bitnami/mysql/tmp/mysql.sock --port=3306
(x16)
其中我添加了(x50)
以使用相同命令指示 50 个不同的 Tomcat PID,并(x16)
以指示 16 个不同的 MySQL 进程。由于该mysql
命令仅使用0.8 MEM%~
,我怀疑 Apache Tomcat 导致了 RAM 溢出。
如您所见,我担心我的 RAM 会溢出到我的交换区。有没有合理的方法来限制我的 RAM 使用量?或者我的实例没有足够的 RAM 来支持最小的 Tomcat 服务器?
目前,我在 Tomcat 上运行的 Geoserver 看起来很好,只是有时有点慢。