首页 > 系统相关 >JVM启动速度大页内存验证

JVM启动速度大页内存验证

时间:2023-02-07 06:55:13浏览次数:44  
标签:大页 启动 seconds unlimited HugePages 内存 JVM

大页内存设置

先查看
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. 部分激进的内存处理调优方面. 

感觉以后可以从这些方面进行深入处理. 

标签:大页,启动,seconds,unlimited,HugePages,内存,JVM
From: https://www.cnblogs.com/jinanxiaolaohu/p/17094659.html

相关文章

  • 面试必问:说一下 Java 虚拟机的内存布局?
    我们通常所说的Java虚拟机(JVM)的内存布局,一般是指Java虚拟机的运行时数据区(RuntimeDataArea),也就是当字节码被类加载器加载之后的执行区域划分。当然它通常是JVM模块......
  • JVM 如何获取当前容器的资源限制?
    作者:卜比最近同事说到Java的ParallelGCThreads 参数,我翻了下jdk8的代码,发现 ParallelGCThreads的参数默认值如下:如果cpu核心数目少于等于8,则GC线程数量和......
  • 获取安卓内存状态
    packagecom.itheiima28.memorydemo;importjava.io.File;importandroid.app.Activity;importandroid.os.Bundle;importandroid.os.Environment;importandroid.os.Stat......
  • 保存数据到手机内存(QQ登录保存密码)
    点击记住密码,保存账号密码。1.获取各数据的对象2.判断记住密码是否被选中,如果被选中,存起来3.登录成功显示界面:<spanstyle="font-size:14px;"><LinearLayoutxmlns:andro......
  • 保存数据到手机内存代码优化(QQ登录保存密码)
    packagecom.itheima28.qqlogin;importjava.io.File;importjava.util.Map;importcom.itheima28.qqlogin.utils.Utils;importcom.itheima28.qqlogin.utils.UtilsOfSDCard......
  • Linux 多进程程序调试实例(六)-- 共享内存
    共享内存介绍共享内存就是两个不相关的进程访问同一个逻辑内存,从而达到两个进程互相通信的效果。共享内存是两个正在运行的进程之间共享和传递数据最有快的一种通信方式......
  • 关于服务器内存清理不掉的问题
    今天登录服务器,发现怎么清理cache内存,服务器内存始终都不释放,很是纳闷,黑人问号???一直使用 echo3>/proc/sys/vm/drop_caches 命令清理内存,发现内存一直都是在698M。......
  • JVM参数:带你认识-X和-XX参数
    摘要:JVM参数分为三类:标准参数、非标准参数(-X参数)和高级选项(-XX参数)。本文主要为大家讲解-X参数和-XX参数。本文分享自华为云社区《JVM运行参数之-X和-XX参数》,作者:共饮一......
  • oracle内存结构示意图
     ......
  • JVM参数:带你认识-X和-XX参数
    摘要:JVM参数分为三类:标准参数、非标准参数(-X参数)和高级选项(-XX参数)。本文主要为大家讲解-X参数和-XX参数。本文分享自华为云社区《​​JVM运行参数之-X和-XX参数​​》,作者:......