正文
大页内存设置
先查看
cat /proc/meminfo |grep -i huge
获取大页内存的大小信息.
AnonHugePages: 42022912 kB
HugePages_Total: 158720
HugePages_Free: 1005
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
需要注意, 我这个里面带一个Oracle数据库.
所以在用大页都是Oracle数据库的.
增加部分系统设置内容:
vim /etc/security/limits.conf
* soft memlock unlimited
* hard memlock unlimited
* soft nofile unlimited
* hard nofile unlimited
* soft nproc unlimited
* hard nproc unlimited
大页内存的设置
增加设置信息
vim /etc/sysctl.conf
增加一行, 修改之前的配置
注意 因为默认页大小是 2MB 我增加60G的空间给JVM使用
本来是数据库服务器的资源使用较大:
vm.nr_hugepages = 189440
#vm.nr_hugepages = 158720
注释掉之前的数据 , 增加新的数值.
注意需要使用 sysctl -p 的方式使之生效
注意 扩展 大页内存 需要耗时较久的时间
需要多等一下命令执行完成.
jvm 启动参数的配置
在启动脚本里面增加内容为:
-XX:+UseLargePages -XX:LargePageSizeInBytes=2m -Xms48G -Xmx48G
注意将大页内存设置为 48左右.
现阶段大页内存的信息为:
HugePages_Total: 189440
HugePages_Free: 31725
修改端口避免有冲突进行启动jvm
nohup ./startup.sh >20230206.txt 2>&1 &
查看启动速度.
注意修改大页之前的启动速度分别为:
824.045 seconds
787.267 seconds
777.949 seconds
修改脚本之后的启动速度为:
826.263 seconds
790.765 seconds
851.384 seconds
发现大页内存的启动速度会变慢.
注意 启动过程中可以观察 大页内存的使用.
HugePages_Total: 189440
HugePages_Free: 22989
HugePages_Rsvd: 16809
HugePages_Surp: 0
Hugepagesize: 2048 kB
总结
启动速度会少许变慢.
但是不知道性能有否提升, 需要进行一次严格的压测才可以.
感觉可以验证一下 在高并发情况下性能的情况.
性能优化的思路 感觉至少在如下方面:
1. 内存分配方面.
2. 进程切换方面.
3. IO(网络和文件系统)优化方面.
4. 池化资源优化方面.
5. 部分激进的内存处理调优方面.
感觉以后可以从这些方面进行深入处理.