有时候需要快速验证不同GC配置的效果,下面是dboss的一个测试脚本,足够简单,但有足够测试gc的变化情况。
from java.util.concurrent import Executors from java.util.concurrent import Callable DBOSS={ "dboss":{ "locations":["192.168.172.3:9999"], "references":[ { "id":"dbossTester", "version":"1.0" } ] }, } from dboss import DuitangRemoteProxy proxy = DuitangRemoteProxy(DBOSS) dbossTester = proxy.getService('dbossTester') import time data="0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" for x in range(2000): dbossTester.test(data) executor = Executors.newFixedThreadPool(50) class Tester(Callable): def call(self): dbossTester.test(data) tasklist = [] for x in range(500000): tasklist.append(Tester()) begin = time.time() resultlist = executor.invokeAll(tasklist) for result in resultlist: result.get() end = time.time() print "50 concurrent, 500000 rquest cost %s"%((end-begin)*1000) executor.shutdown()
测试不同的gc配置
默认gc
[admin@server3 dboss-test]$ /duitang/dist/sys/java/bin/java -XX:NewRatio=3 -XX:+UseCompressedOops -XX:+DisableExplicitGC -Xmx1g -Xss1024k -Xms1g -classpath /duitang/dist/sys/jython/jython.jar: -Dpython.home=/duitang/dist/sys/jython -Dpython.executable=/duitang/dist/sys/jython/bin/jython org.python.util.jython dboss_con_test3.py
cms
[admin@server3 dboss-test]$ /duitang/dist/sys/java/bin/java -XX:NewRatio=3 -XX:+UseCompressedOops -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:+CMSIncrementalPacing -XX:CMSIncrementalSafetyFactor=75 -XX:CMSInitiatingPermOccupancyFraction=90 -XX:CMSIncrementalDutyCycle=10 -XX:CMSIncrementalDutyCycleMin=0 -Xmx1g -Xss1024k -Xms1g -classpath /duitang/dist/sys/jython/jython.jar: -Dpython.home=/duitang/dist/sys/jython -Dpython.executable=/duitang/dist/sys/jython/bin/jython org.python.util.jython dboss_con_test3.py
相关推荐
最后,文档中提到的实战篇会介绍具体的调优步骤,包括测试脚本的录制、测试场景的定义、调优方案的选择、JVM监控图的查看以及测试结果的分析。通过这些实际操作,可以进一步理解和掌握JVM调优的技巧和策略。文档的...
例如,ElasticSearch和Cassandra在启动脚本中对JVM参数进行了细致的配置,这些都是经过大量实践验证的配置。 2. **VJTools的jvm-options.sh**:VJTools提供了一个jvm-options.sh脚本,可以根据实际需求稍作修改...
- 先验证单个脚本的业务功能,再进行并发测试。 - 分析测试工具图表,如并发数、响应时间、事务速率和网络吞吐量。 - 检查服务日志、服务器资源、网络连接、JVM内存、数据库连接池、数据库资源消耗、中间件配置和...
2. **JVM(Java虚拟机)**:JVM是Java程序运行的平台,它负责加载、验证、执行字节码,并管理内存。面试中常见的JVM知识点包括垃圾回收(GC)机制、内存区域(如堆、栈、方法区)、类加载机制、JVM调优(如堆大小...
3. **测试用例**:用于验证GC算法或优化效果的测试代码,可能包括压力测试和性能基准测试。 4. **日志和监控工具**:项目可能包含了用于记录和分析GC日志的脚本或工具,帮助理解GC的工作过程和性能瓶颈。 5. **文档*...
- **监控与测试**: 完成配置调整后,需要通过压力测试等方式验证效果,并持续监控系统性能。 总之,通过合理的JVM参数调整,可以显著提升Tomcat服务器的性能和稳定性。同时,也需要关注Tomcat自身的配置优化,如...
同时,测试用例可以验证GC算法的正确性和性能。 5. **优化与挑战**: 精确诊断GC的实现需要平衡精度和效率,这涉及到复杂的算法设计和优化。例如,为了提高标记的精度,可能需要引入更高级的数据结构或算法;为了...
2. 在脚本中显式添加JVM内存参数,确保与`jvm.options`文件中的配置一致。 例如: - `-Xms256m` - `-Xmx256m` 通过这种方式强制指定内存参数,可以有效避免因配置未被加载而引起的启动失败问题。 #### 推荐启动...
同时,针对JVM的优化,如监控GC信息,调整内存使用,也是提升整体性能的重要环节。 总结来说,创业公司在大数据平台选型和演进的过程中,应结合自身业务需求、发展阶段和技术资源,灵活选用和优化技术方案,以支持...
1. **JVM架构**:了解HotSpot JVM的工作原理,包括解释器、编译器(C1和C2)、垃圾收集器(如Parallel GC、G1 GC)等。 2. **Java编译过程**:从源码到字节码,再到机器码的转换过程,以及JIT编译的动态优化策略。 ...
标题中的“WebSphere CPU高...在分析过程中,还需要结合日志文件(如WAS的系统日志、JVM的GC日志)、应用代码和架构设计来综合判断问题的原因。理解并掌握这些工具的使用对于优化和维护高性能的WebSphere环境至关重要。
要应用上述JVM参数,需编辑Eclipse的启动脚本`eclipse.ini`。具体步骤如下: 1. 打开Eclipse安装目录下的`eclipse.ini`文件。 2. 在`-vmargs`之后添加所需参数。 3. 保存文件并重启Eclipse。 例如,以下是一组典型...
综上所述,Apache JMeter是一款非常强大的开源性能测试工具,通过上述知识点的学习,即使是完全没有基础的新手也能快速掌握并运用到实际工作中去。无论是对Web应用还是其他类型的系统的性能测试,JMeter都能提供全面...
JVM通过类加载器加载类文件,然后进行验证、准备、解析和初始化,最后执行字节码。在执行过程中,JVM采用Just-In-Time (JIT) 编译技术,将频繁执行的热点代码编译为本地机器码,以提高执行效率。 "jvmtest"可能会...
- **持续集成**:Jenkins、Travis CI或GitHub Actions等工具可实现持续集成,每次代码提交都会自动触发构建和测试,快速发现潜在问题。 7. **代码质量管理**: - **Code Style与Formatter**:Eclipse允许你自定义...
JavaScript 是一种解释型脚本语言,常被用于网页开发中以增加交互性。它不是Java的一部分,两者之间没有直接的关系。JavaScript的主要用途包括: - 动态修改HTML页面。 - 验证表单数据。 - 创建动态内容。 - 控制...
JVM的垃圾收集(GC)关注两个关键指标:吞吐量和暂停时间。吞吐量是应用程序运行时间相对于总时间的比例,不包括GC时间。高吞吐量意味着程序大部分时间在执行用户代码。另一方面,暂停时间是指GC期间应用程序无响应...