Java版本
From a security perspective, we recommend you use the latest released version of JDK 1.8 as older freely available versions have disclosed security vulnerabilities. LinkedIn is currently running JDK 1.8 u5 (looking to upgrade to a newer version) with the G1 collector. If you decide to use the G1 collector (the current default) and you are still on JDK 1.7, make sure you are on u51 or newer. LinkedIn tried out u21 in testing, but they had a number of problems with the GC implementation in that version. LinkedIn's tuning looks like this:
从安全的角度,我们推荐你使用最新的发布版本JDK1.8,旧版本已经公开披露了一些安全漏洞,LinkedIn现在正在运行的是JDK 1.8 u5(希望升级到新版本)使用G1收集器,如果你想在在JDK 1.7使用G1收集器(当前默认),请确保在u51或更高的版本,LinkedIn尝试在u21测试,但该版本存在大量G1执行的问题。LinkedIn的配置如下:
-Xmx6g -Xms6g -XX:MetaspaceSize=96m -XX:+UseG1GC
-XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:G1HeapRegionSize=16M
-XX:MinMetaspaceFreeRatio=50 -XX:MaxMetaspaceFreeRatio=80
For reference, here are the stats on one of LinkedIn's busiest clusters (at peak):
供参考,下面是关于 LinkedIn 的繁忙集群 (高峰) 之一的统计:
- 60 brokers
60个brokers
- 50k partitions (replication factor 2)
50k 分区 (副本 2)
- 800k messages/sec in
-800k 消息/秒
- 300 MB/sec inbound, 1 GB/sec+ outbound
300 MB/sec的入站, 1 GB/秒+ 出站
The tuning looks fairly aggressive, but all of the brokers in that cluster have a 90% GC pause time of about 21ms, and they're doing less than 1 young GC per second.
这个调整看来相当激进, 但是集群中的有90%的GC暂停时间大约是21ms, 以及每秒小于1 个的年轻代GC.