• 关于压力测试的思路


    思路:

    把压力测试,SQL优化,MEMCACHED优化,SQL压力测试等进行模拟样例测试,并形成一系列办法,为以后可能出现的情况准备我们的知识储备,当然,就目前而言我们的小系统不需要这样的那样的优化,可能只能提升不到一毫秒,但我们是在整理办法,不是为了优化而优化,我们要形成一套思路,以后各种开发都要遵守的开发优化思路。

    一、实现代码级的压力测试

    1、使用最简单的WEBBENCH之类进行测试,不使用LOAD RUNNER等复杂软件,那些复杂的东东还是交给测试部的妹妹们去玩吧。

    2、把可能很多人访问的ACTION(或者通过DRUID获取哪个ACTION使用的人员多),在ACTION里面添加代码,把可能需要人参数序列化填写进来,比如这个ACTION需要人员ID做为参数,返回人员的基本信息,那么我们从人员表中提取100个人的人员ID,形成数组,在ACTION入口处写一个随机方法,获取这个数组中的一个值,做为随机访问的人员ID,这样基本上模拟了真实的情况。

    3、用WEBBENCH模拟人员多次访问此ACTION,查看压力极限。

    4、其它ACTION也做相同的测试,完成后,将测试结果粘贴到ACTION代码中,表示测试完成,方便项目经理查阅。

    5、完成测试后,将参数序列及随机代码等注释掉。

    预计完成时间:1天

    二、将MEMCACHED只能缓存特定数据,变换下思路,让MEMCACHED缓存一科的排序后所有数据

    然后在JAVA端利用数组或LIST的操作,提取用户真正想要得到的数据,比如用户提供了一个TS,100,而数据库中存的了200条记录,那么我们缓存所有的200条,然后在用户请求时,取出MEMCACHED里的200条,然后用JAVA去掉前面100条,只把后面100条返回给用户。这个思路对于解决特定问题会很有效,我们需要进一步实验,理清这个思路,方便以后在设计其它缓存时大量使用。这样一来,我们将不再局限MEMCACHED怕参数变化 的问题,参数大量变化也不再向数据库端发起请求,前提是我们的优秀的设计思路。 预计时间:2天

    三、MEMCACHED预热的问题。

    我们如果有大量的查询使用了MEMCACHED,如果刚上线时,人员很多,所有的数据均没有缓存呢,所有的请求将全发到数据库端,就是雪崩效应,我们为了解决这一问题,可以考虑使用预热的办法,那么我们的预热方案是什么?初步想是一个JAVA的项目,执行一个个的SQL,然后把结果按规则保存到MEMCACHED里,在预热完成后,再去启动TOMCAT,这样将极大提高用户的初次访问速度。至于如何执行一个个SQL,执行哪些SQL,就是具体问题具体分析了,应该和AOP里写的代码大同小异。以后也可以想办法把AOP里的代码抽离出来,与预热共用这部分代码。

    参考:http://www.cnblogs.com/sunli/archive/2010/09/06/cache_expire_same_time.html

     预计时间:4天

  • 相关阅读:
    golang plugin插件的使用
    UE4 是如何渲染每一帧画面的
    虚幻4 Gbuffer
    学习一下虚幻4
    关于 Kapacitor 和 TickScript 的笔记
    SpringOne2020
    TICK Telegraf InfluxDB Chronograf Kapacitor 参考资料
    【转】高考英语常考短语100条
    「面试」拿到B站的意向书
    使用ABAP操作office Word文档
  • 原文地址:https://www.cnblogs.com/littlehb/p/3050037.html
Copyright © 2020-2023  润新知