如何限制 Apache Tomcat 在 AWS 微实例上使用的 RAM?

如何限制 Apache Tomcat 在 AWS 微实例上使用的 RAM?

我在运行 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 看起来很好,只是有时有点慢。

相关内容