我的 debian 服务器上安装了 openfire。
我想知道openfire java内存是否应该小于服务器内存?
例如,我有一台具有 256 MB RAM 的服务器,现在我可以拥有超过 256 MB RAM 的 openfire java 内存吗,或者它应该小于 256。
请帮忙
谢谢,Pankaj
答案1
我相信您会发现,如果您在系统上设置的内存太高,JVM 将无法启动(例如“无法为对象堆保留足够的空间”)
你计划有多少用户?如果只有几个,openfire 应该在 128MB 左右的内存下运行良好。如果你计划同时有十几个以上的用户,你真的应该考虑在服务器上增加内存。如果你计划在同一台服务器上运行数据库,情况就更是如此。你不想要在交换内存中运行的服务器上运行 Openfire。
另一件事 - Debian 附带的 openfire 版本可能是真的旧版。获取最新版本,或至少 3.5 版。
答案2
不要分配太多以至于进入交换区。分配足够的内存以使应用程序不会耗尽内存。除非您有大量活动,否则进一步的调整可能不太重要。
除此之外,您还必须在为 Java 分配内存(我相信默认的垃圾收集器是非增量式的,因此 JVM 的内存越多意味着暂停频率越低,但暂停时间越长)或磁盘缓存(如果您的工作集适合缓存,则 IO 性能会更好)之间取得平衡。
答案3
一般来说,在调整 JVM 时,最好将其限制保持在系统物理内存量以下。否则,当 JVM 开始占用所有内存时,其他系统进程很可能会被换出。
答案4
Openfire 极其耗费 Java,但不要让它进入交换区。否则它会慢慢爬行。
如果我是你的话,我会添加更多的 RAM,Java 应用程序服务器上总共 256RAM 并不常见(除非它真的是轻量级的,而 Openfire 不是)。