一、第三十一课 对OS内核、JVM参数、RocketMQ参数进行调整
1、对RocketMQ集群进行OS内核参数调整
1)vm.overcommit_memory
有0、1、2三个值可选
- 0:在中间件申请内存时,os内核会检查可用内存是否足够,如果足够就分配内存给你,如果不太够,就拒绝分配内存,导致中间件报错(一般不设置0)
- 1:把所有可用的内存都允许分配给中间件(一般设置为1)
- 2:内核允许分配超过所有物理内存和交换空间总和的内存(一般不设置2)
2)vm.max_map_count
会影响中间件系统可以开启的线程的数量,默认值是65535
3)vm.swappiness
控制进程的swap行为,默认是60,可能会导致中间件运行不活跃的时候被迫腾出内存空间然后放磁盘swap区域去。因此生产环境建议把这个参数调小一些,比如10,尽量用物理内存
4)ulimit
用来控制linux上的最大文件链接数,默认值是1024,一般肯定是不够的,因为读写磁盘文件,网络通信,都跟这个参数有关
2、对JVM参数调整
1)修改runbroker.sh
RocketMQ默认使用G1垃圾收集器,默认堆内存是8G,我们可以根据实际情况更改内存大小,并建议将-XX:SoftRefLRUPolicyMSPerMB=0设置为1000
3、修改RocketMQ发送消息的线程池的线程数量
修改rocketmq/distribution/target/apache-rocketmq/conf/dledger目录下的配置文件中的sendMessageThreadPoolNums属性,默认是16,我们可以根据实际情况增大或缩小这个线程数
二、第三十三课 压测测的是什么
应该在TPS和机器的cpu负载、内存使用率、jvm gc频率、磁盘io负载、网络流量负载之间取得一个平衡,尽量让TPS提高,同时让机器的各项资源负载不要太高
三、第三十五课 阶段性复习