linuxtongweb修改jvm内存

linuxtongweb修改jvm内存,第1张

1. 首先,打开Linux终端,输入“sudo su”进入root用户模式。

2. 然后使用nano命令编辑JVM内存配置文件/etc/profile。

3. 在该文件中修改JVM的内存参数,如-Xms、-Xmx和-XX:MaxPermSize来调整Java应用的最小堆大小、最大堆大小和永久代大小。

4. 保存并退出文件后,重启Linux系统即可实现对JVM内存的修改。

典型JVM参数设置:

java -Xmx3550m -Xms3550m -Xmn2g -Xss128k

-Xmx3550m:设置JVM最大可用内存为3550M。

-Xms3550m:设置JVM促使内存为3550m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。

-Xmn2g:设置年轻代大小为2G。整个堆大小=年轻代大小 + 年老代大小 + 持久代大小。持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。

-Xss128k:设置每个线程的堆栈大小。JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。更具应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是 *** 作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。

java -Xmx3550m -Xms3550m -Xss128k -XX:NewRatio=4 -XX:SurvivorRatio=4 -XX:MaxPermSize=16m -XX:MaxTenuringThreshold=0

-XX:NewRatio=4:设置年轻代(包括Eden和两个Survivor区)与年老代的比值(除去持久代)。设置为4,则年轻代与年老代所占比值为1:4,年轻代占整个堆栈的1/5

-XX:SurvivorRatio=4:设置年轻代中Eden区与Survivor区的大小比值。设置为4,则两个Survivor区与一个Eden区的比值为2:4,一个Survivor区占整个年轻代的1/6

-XX:MaxPermSize=16m:设置持久代大小为16m。

在Linux环境,使用jmeter压测会遇到很多问题,比如:配置不对,权限不足这些都是很好解决。

但是遇到这几个问题:

1.内存泄漏   2.端口不够

遇到两个问题网上解决办法都很杂 ,没有一个清晰明了的解决办法,所以针对这两个问题,写出解决办法:

例如:

屏蔽“聚合报告”“查看结果数”,等插件

脚本尽量最小变量 ,多个线程组下CSV文件设置,如果 只在当前线程组 使用变量,尽量不使用“全部现场”。

bin/下的jmeter文件(非jmeter.sh)编辑:(Windows环境编辑jmeter.bat)

JVM_ARGS="-Xms4g -Xmx4g"

还有另一个方法:启动加参数设置:JVM_ARGS="-Xms2048m -Xmx2048m" jmeter -t test.jmx

(上面调整内存格式可以1g 2g,也可以1024m 2048m,这样写都可以)

Response code: Non HTTP response code: java.net.BindException

Response message: Non HTTP response message: Address already in use: connect

Linux本来的默认的端口欧范围:1024-65535,64511个,所以当压测接口调用超过65535个就会出现端口不够的问题。

查Linux支持多少端口,

cat /proc/sys/net/ipv4/ip_local_port_range

然后找运维修改,或者:

修改文件  /etc/sysctl.conf

键入如下语句:

net.ipv4.ip_local_port_range = 1024 65535

压测过程还有其他问题,比如宽带限制,负载均衡,关闭缓存等,多百度即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/10980635.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-12
下一篇 2023-05-12

发表评论

登录后才能评论

评论列表(0条)

保存