数据订正时的一些总结
来源:互联网 发布:电信移动网络 编辑:程序博客网 时间:2024/05/17 02:58
前段时间进行5000w条数据的订正,开了3个线程,因为预发机器是一台,且运行了其他的一些服务,所以CPU的load>1,导致了影响其他服务的响应(比如,其他使用数据库的服务的访问速度变慢明显,收到了DBA的警报),同时每片2000条数据的处理速度由最初的3000-4000ms上升为10000-20000ms;后来改到了线上的beta集群(100台机器),且屏蔽了其他服务后,每片2000条数据的处理速度为30-40ms
结论是:
1、有集群尽可能用集群
2、机器上的服务尽可能屏蔽掉,一是不要影响数据订正业务,也不要因为数据订正业务导致其他业务不可用
3、CPU负载尽可能降到0.5
4、注意打log确定redo的区间,调整输出log级别(到error较好),防止log文件太大爆掉磁盘空间
5、注意任务分片,且要加停止开关,不要一个任务跑死不能停
6、JAVA多线程的异步线程池貌似不好用,数据处理地比较乱。。。最后还是没有用到线程调度,直接开了3个线程做的
===================================================================================================
下面是【转载】的CPU利用率与Load Average的区别?
CPU利用率与Load Average的区别?
CPU利用率,是对一个时间段内CPU使用状况的统计,通过这个指标可以看出在某一个时间段内CPU被占用的情况,如果CPU被占用时间很高,那么就需要考虑CPU是否已经处于超负荷运作,长期超负荷运作对于机器本身来说是一种损害,因此必须将CPU的利用率控制在一定的比例下,以保证机器的正常运作。
Load Average是 CPU的Load,它所包含的信息不是CPU的使用率状况,而是在一段时间内CPU正在处理以及等待CPU处理的进程数之和的统计信息,也就是CPU使用队列的长度的统计信息。
那么CPU利用率与Load Average对于性能测试的意义有什么区别呢?实际上,CPU利用率反映的是CPU被使用的情况,当CPU长期处于被使用而没有得到足够的时间休息间歇,那么对于CPU硬件来说是一种超负荷的运作,需要调整使用频度。而Load Average却从另一个角度来展现对于CPU使用状态的描述,Load Average越高说明对于CPU资源的竞争越激烈,CPU资源比较短缺。对于资源的申请和维护其实也是需要很大的成本,所以在这种高Average Load的情况下CPU资源的长期“热竞争”也是对于硬件的一种损害。
如何评估性能需求中合理的Load Average?
一般来说,Load Average是与机器内核数有关的。以一个单核的机器为例,load=0.5表示CPU还有一半的资源可以处理其他的线程请求,load=1表示CPU所有的资源都在处理请求,没有剩余的资源可以利用了,而load=2则表示CPU已经超负荷运作,另外还有一倍的线程正在等待处理。所以,对于单核机器来说,理想状态下,Load Average要小于1。同理,对于双核处理器来说,Load Average要小于2。结论是:多核处理器中,你的Load Average不应该高于处理器核心的总数量。
不同核处理器之间的load值怎样换算?
性能测试中可能遇到这样的问题,你的线上机器是8核的,但是线下性能测试机只有4核的与16核的,那么我用16核机器测试得到的load值是2.6,换算到8核机器上应该是多少呢?
很不幸,没有一个准确的公式可以用来换算。但是我们可以根据load的含义来做一个推断,假如我们在一个双核的机器上测试100个线程并发访问X页面时load为2,那么同样的并发线程数请求同样的页面,在一台单核的机器上测试,load会是多少呢?在双核机器上,100线程同时请求时load为2,说明2个核都在满负荷运作,且平均每一个核在同时处理50个线程;如果在单核机器上100个线程同时请求,并且假设每一个核还是能同时处理50个线程,那么就会有50个线程在等待,这样看起来CPU的load还是2,但事实上,100个线程同时请求CPU时,已经超出了一个CPU可以同时处理的线程的能力,必然会出现线程之间竞争CPU资源的情况,而线程对CPU的“热竞争”会使CPU耗费更多的资源去做线程调度的事情,所以总体效果来看,单核时load值实际会高于2。
上面是我自己的推论,网上还没有找到相应的资料验证。假如这种推论是对的,那么16核机器上测试得到的load为2.6,在8核机器上测试的话load值肯定高于2.6。
- 数据订正时的一些总结
- 订餐系统:订餐管理系统的一些故事
- 一些总结的数据
- ANR的一些数据总结
- 对于订餐系统的一些扩展的感受
- 总结:数据清洗的一些总结
- 订餐系统总结
- 对于数据工作的一些总结
- 关于数据可视化的一些总结
- 一些数据可视化的站点总结
- htmlunit抓取数据的一些总结
- 数据加密的一些浅谈总结
- orcal图形数据的一些总结
- 对数据上传业务的一些总结
- glog的订制
- 订飞机票的代码
- 订餐系统中一些功能代码
- 关于删除重复数据的一些sql语句(总结)
- 自定义CSS更改多说评论头像效果
- 网站开发的发展趋势
- 关于unsigned与signed的转换问题
- 安装Android SDK和ADT步骤和遇到的问题
- 【Android】Android中shape的使用
- 数据订正时的一些总结
- G14 刷小米
- Oracle 启动监听命令
- 几种任务调度的 Java 实现方法与比较
- [设计思想] 游戏系统设计思路的牢笼 一味追求实用性
- oracle 表空间 不足时如何处理
- arm linux 中断和异常
- PPP协议全面分析
- 解决运行时控制台总是出现emulator-5554 disconnected,cancel "xxx activity launch".模拟器不能运行。