`
san_yun
  • 浏览: 2638797 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

快速验证jvm gc的测试脚本

 
阅读更多

有时候需要快速验证不同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

 

 

 

 

 

 

  • 大小: 153.6 KB
分享到:
评论

相关推荐

    img JVM调优实战.pdf

    最后,文档中提到的实战篇会介绍具体的调优步骤,包括测试脚本的录制、测试场景的定义、调优方案的选择、JVM监控图的查看以及测试结果的分析。通过这些实际操作,可以进一步理解和掌握JVM调优的技巧和策略。文档的...

    关键业务系统JVM参数推荐

    例如,ElasticSearch和Cassandra在启动脚本中对JVM参数进行了细致的配置,这些都是经过大量实践验证的配置。 2. **VJTools的jvm-options.sh**:VJTools提供了一个jvm-options.sh脚本,可以根据实际需求稍作修改...

    性能测试之有效监控及测试分析.docx

    - 先验证单个脚本的业务功能,再进行并发测试。 - 分析测试工具图表,如并发数、响应时间、事务速率和网络吞吐量。 - 检查服务日志、服务器资源、网络连接、JVM内存、数据库连接池、数据库资源消耗、中间件配置和...

    java后端面试题,涵盖:java基础、jvm、Redis、mybatis、mysql、springMVC、java线程池等

    2. **JVM(Java虚拟机)**:JVM是Java程序运行的平台,它负责加载、验证、执行字节码,并管理内存。面试中常见的JVM知识点包括垃圾回收(GC)机制、内存区域(如堆、栈、方法区)、类加载机制、JVM调优(如堆大小...

    GC02-project

    3. **测试用例**:用于验证GC算法或优化效果的测试代码,可能包括压力测试和性能基准测试。 4. **日志和监控工具**:项目可能包含了用于记录和分析GC日志的脚本或工具,帮助理解GC的工作过程和性能瓶颈。 5. **文档*...

    tomcat的调整优化

    - **监控与测试**: 完成配置调整后,需要通过压力测试等方式验证效果,并持续监控系统性能。 总之,通过合理的JVM参数调整,可以显著提升Tomcat服务器的性能和稳定性。同时,也需要关注Tomcat自身的配置优化,如...

    PreciseGC:Precision Mark-Compact GC

    同时,测试用例可以验证GC算法的正确性和性能。 5. **优化与挑战**: 精确诊断GC的实现需要平衡精度和效率,这涉及到复杂的算法设计和优化。例如,为了提高标记的精度,可能需要引入更高级的数据结构或算法;为了...

    ElasticSearch启动之后自己Killed解决方案.docx

    2. 在脚本中显式添加JVM内存参数,确保与`jvm.options`文件中的配置一致。 例如: - `-Xms256m` - `-Xmx256m` 通过这种方式强制指定内存参数,可以有效避免因配置未被加载而引起的启动失败问题。 #### 推荐启动...

    创业公司的大数据平台选型和进化.pdf

    同时,针对JVM的优化,如监控GC信息,调整内存使用,也是提升整体性能的重要环节。 总结来说,创业公司在大数据平台选型和演进的过程中,应结合自身业务需求、发展阶段和技术资源,灵活选用和优化技术方案,以支持...

    openjdk-8u40-src-b25-10_feb_2015

    1. **JVM架构**:了解HotSpot JVM的工作原理,包括解释器、编译器(C1和C2)、垃圾收集器(如Parallel GC、G1 GC)等。 2. **Java编译过程**:从源码到字节码,再到机器码的转换过程,以及JIT编译的动态优化策略。 ...

    WebSphere CPU高分析工具

    标题中的“WebSphere CPU高...在分析过程中,还需要结合日志文件(如WAS的系统日志、JVM的GC日志)、应用代码和架构设计来综合判断问题的原因。理解并掌握这些工具的使用对于优化和维护高性能的WebSphere环境至关重要。

    Eclipse启动运行速度调优

    要应用上述JVM参数,需编辑Eclipse的启动脚本`eclipse.ini`。具体步骤如下: 1. 打开Eclipse安装目录下的`eclipse.ini`文件。 2. 在`-vmargs`之后添加所需参数。 3. 保存文件并重启Eclipse。 例如,以下是一组典型...

    jmeter基础教程(H,C,T公司经验总结)

    综上所述,Apache JMeter是一款非常强大的开源性能测试工具,通过上述知识点的学习,即使是完全没有基础的新手也能快速掌握并运用到实际工作中去。无论是对Web应用还是其他类型的系统的性能测试,JMeter都能提供全面...

    jvmtest

    JVM通过类加载器加载类文件,然后进行验证、准备、解析和初始化,最后执行字节码。在执行过程中,JVM采用Just-In-Time (JIT) 编译技术,将频繁执行的热点代码编译为本地机器码,以提高执行效率。 "jvmtest"可能会...

    Java项目开发积累.doc

    - **持续集成**:Jenkins、Travis CI或GitHub Actions等工具可实现持续集成,每次代码提交都会自动触发构建和测试,快速发现潜在问题。 7. **代码质量管理**: - **Code Style与Formatter**:Eclipse允许你自定义...

    java总结java总结java总结

    JavaScript 是一种解释型脚本语言,常被用于网页开发中以增加交互性。它不是Java的一部分,两者之间没有直接的关系。JavaScript的主要用途包括: - 动态修改HTML页面。 - 验证表单数据。 - 创建动态内容。 - 控制...

    7-29专业级回忆.docx

    JVM的垃圾收集(GC)关注两个关键指标:吞吐量和暂停时间。吞吐量是应用程序运行时间相对于总时间的比例,不包括GC时间。高吞吐量意味着程序大部分时间在执行用户代码。另一方面,暂停时间是指GC期间应用程序无响应...

Global site tag (gtag.js) - Google Analytics