XMPP协议的一个服务器实现(也是目前较多使用的服务器)Openfire,这里有 3.7为例,默认的jvm启动内存配置较小,至少在我windows测试时,新生代只有1M,整个堆12M,老年代10M,永久区16M左右。在我加上GC信息后发现gc较频繁。通过修改jvm启动参数后,gc明显减少,这对提升openfire的性能还是比较明显。
修改openfire jvm启动参数方式(原文:http://blog.csdn.net/simonhe1973/archive/2009/09/21/4576696.aspx)
原文有误。
Windows:
在openfire的bin目录下建立openfired.vmoptions(作为应用程序运行)或者openfire-service.vmoptions(作为服务运行)
内容添加
-Xms512m
-Xmx512m
Linux:
修改/etc/sysconfig/opfire文件
去掉注释
OPENFIRE_OPTS=”-Xmx512m”
同理如加GC信息也加在上述文件中。
以上为灰色为原博客文章。实际linux下应修改$openfire_home/bin/openfire
INSTALL4J_ADD_VM_PARAMS="-Xms16g -Xmx16g -Xmn8g "
=========================
今天对openfire做压力测试,初步尝试10000个连接消息接收情况,结果刚到800多个,就连不上了,错误:Connection failed. No response from server.:
at org.jivesoftware.smack.PacketReader.startup
到openfire所在服务器:jstat -gcutil jpid 发现gc非常频繁,开销非常大!
0.00 85.00 92.77 62.97 99.97 3613 34.783 893 1514.143 1548.926
72.73 0.00 86.76 63.03 99.97 3616 34.791 893 1514.143 1548.934
0.00 72.73 80.76 63.10 99.97 3619 34.798 893 1514.143 1548.941
88.89 0.00 72.50 63.15 99.97 3622 34.814 893 1514.143 1548.957
0.00 80.00 64.42 63.21 99.97 3625 34.821 893 1514.143 1548.964
100.00 0.00 40.32 63.29 99.97 3628 34.828 893 1514.143 1548.971
0.00 93.75 34.14 63.33 99.97 3631 34.835 893 1514.143 1548.978
80.00 0.00 30.24 63.40 99.97 3634 34.842 893 1514.143 1548.985
0.00 85.00 24.13 63.45 99.97 3637 34.849 893 1514.143 1548.992
75.00 0.00 16.18 63.50 99.97 3640 34.857 893 1514.143 1549.000
0.00 80.00 12.04 63.55 99.97 3643 34.864 893 1514.143 1549.007
80.00 0.00 6.02 63.64 99.97 3646 34.871 893 1514.143 1549.014
0.00 50.00 0.00 63.69 99.97 3649 34.878 893 1514.143 1549.021
0.00 80.00 94.77 63.74 99.97 3651 34.883 893 1514.143 1549.026
80.00 0.00 88.74 63.79 99.97 3654 34.890 893 1514.143 1549.033
0.00 80.00 80.60 63.86 99.97 3657 34.907 893 1514.143 1549.050
10.00 0.00 70.52 63.90 99.97 3660 34.917 893 1514.143 1549.060
0.00 100.00 64.34 63.95 99.97 3663 34.923 893 1514.143 1549.067
72.73 0.00 58.49 64.00 99.97 3666 34.931 893 1514.143 1549.074
很明显能看出永久区快满了,上面的参数配置得派上用场了。服务器32G内存就跑了个服务器,那么。。。。。。
分享到:
相关推荐
`openfire.vmoptions`文件主要用于设置Openfire主进程的JVM参数。这个文件允许你定制Java虚拟机的行为,包括但不限于以下方面: 1. **内存分配**: 可以设置堆内存大小,如`-Xms`和`-Xmx`参数分别定义了JVM启动时的...
例如,设置JVM参数: ```xml <jvm> <initialMemoryPool>512m <maximumMemoryPool>1024m </jvm> ``` 配置数据库连接: ```xml <provider>jdbc <driver>com.mysql.jdbc.Driver</driver> <url>jdbc:mysql://...
环境配置的第二部分是配置Openfire运行环境,这涉及到在Eclipse中配置Java应用程序的运行参数,包括设置正确的工程名称和主类名。文档中还提到了如何在Eclipse中使用Ant工具进行项目的部署,Ant是一个基于Java的跨...
这包括设置环境变量,如`JAVA_OPTS`来调整JVM参数,以及`OPENFIRE_HOME`指向Openfire的安装目录。另外,还要确保Eclipse能够正确部署和运行修改后的代码。 6. **版本控制与持续集成** 为了保持代码版本管理和团队...
- **性能优化**:对于高并发场景,可能需要对Openfire进行性能调优,比如调整JVM参数、增加内存等。 - **安全性**:为了提高安全性,建议定期更新Openfire到最新版本,并且使用强密码策略。 以上就是关于Openfire在...
在MyEclipse 中部署Openfire,需要设置服务器配置,包括JVM参数、端口设置、数据库连接等。部署完成后,可以通过Web管理界面进行服务器管理和监控。 9. **调试与测试** MyEclipse 提供的调试工具可以帮助开发者...
2. **配置远程调试**:在Openfire的启动脚本(如`bin/startup.sh`或`bin/start.bat`)中,添加`-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000`参数。这将开启Openfire的JVM远程调试端口,...
- **Openfire**:优点在于简单易部署,但不支持分布式部署,适合小型系统。 - **Ejabberd**:利用Erlang语言的优势,在并发性和稳定性方面表现优异,适合大型分布式环境,但维护成本较高。 - **GoPush**:基于Go语言...
JReloader 是一个用来重新加载class文件而无需重启JVM的工具。 PHPJava Bridge php调用java类 Java批量作业执行框架 MyBatchFramework MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的...
JReloader 是一个用来重新加载class文件而无需重启JVM的工具。 PHPJava Bridge php调用java类 Java批量作业执行框架 MyBatchFramework MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的...
JReloader 是一个用来重新加载class文件而无需重启JVM的工具。 PHPJava Bridge php调用java类 Java批量作业执行框架 MyBatchFramework MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的...
JReloader 是一个用来重新加载class文件而无需重启JVM的工具。 PHPJava Bridge php调用java类 Java批量作业执行框架 MyBatchFramework MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的...
JReloader 是一个用来重新加载class文件而无需重启JVM的工具。 PHPJava Bridge php调用java类 Java批量作业执行框架 MyBatchFramework MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的...
JReloader 是一个用来重新加载class文件而无需重启JVM的工具。 PHPJava Bridge php调用java类 Java批量作业执行框架 MyBatchFramework MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的...
JReloader 是一个用来重新加载class文件而无需重启JVM的工具。 PHPJava Bridge php调用java类 Java批量作业执行框架 MyBatchFramework MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的...
JReloader 是一个用来重新加载class文件而无需重启JVM的工具。 PHPJava Bridge php调用java类 Java批量作业执行框架 MyBatchFramework MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的...
JReloader 是一个用来重新加载class文件而无需重启JVM的工具。 PHPJava Bridge php调用java类 Java批量作业执行框架 MyBatchFramework MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的...
JReloader 是一个用来重新加载class文件而无需重启JVM的工具。 PHPJava Bridge php调用java类 Java批量作业执行框架 MyBatchFramework MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的...
JReloader 是一个用来重新加载class文件而无需重启JVM的工具。 PHPJava Bridge php调用java类 Java批量作业执行框架 MyBatchFramework MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的...