对于以下情况,我应该如何调整 GC(例如收集器的类型、堆的最小/最大大小、新/旧代的大小、伊甸园与幸存者的比率等)?(我使用的是 Sun JDK 6,可用内存为 1GB)。
1)一台运行tomcat的master机器,它又运行一个web应用程序来显示master下各种节点机器的状态
2) 节点状态消息包括其 CPU、内存、IO 使用率等内容;典型的消息大小为 1KB
3)一个节点每秒向master发送3条这样的消息,一个master下面有10个节点
4) master 必须将最后一小时的状态数据保存到内存中,所以 master 必须保存在内存中的总状态数据为:3kb * 3600 * 10 = 108MB
5) 主服务器当然需要内存来完成其他任务,因此 JVM 最多可以达到一半 GB,但不会更多。
我的具体问题是,如果我保留更大的新一代,会发生大量复制,因为这些对象至少可以存活一个小时;如果我保持老一代更大,那么会发生很多次要收藏,那么我该怎么做呢?