zoukankan      html  css  js  c++  java
  • 【黑科技系列】智能控电系统

    前言

    近年来,各大公司都青睐于在企业内部搭建大规模的设备集群,方便它们开展各种自动化测试实践。并且,这些设备集群的形态不一,有的仅仅是搭建在普通的机架上面,有的是搭建在专业的设备机柜上面。


    (图1:各种形态的设备集群)

    但我们在长期使用过程中发现,大规模的设备集群长期在线,使我们不得不面临频发的电池鼓涨或者电池老化等问题。


    (图2:电池鼓涨的手机)

    这无疑会给我们的集群运营增加很大的维修成本。

    电池鼓包/电池老化的原因

    那么究其根本,是什么导致了频发的设备电池涨壳问题呢?原因主要有2点:

    • ① 电池环境温度过高
    • ② 电池过充(长时间充电)

    1)电池环境温度过高

    那电池环境温度过高的话,我们可以通过降低设备集群所处空间(一般是设备机房)的温度来减少环境温度过高的情况。

    比如可以通过空调、风扇、散热板等物理形式,来降低设备电池所处环境的温度;甚至我们还可以配上远程的温湿度监控系统,来监控环境温度,温度出现警报时及时进行处理。


    (图3:DeviceKeeper的温度监控功能)

    2)电池过充

    而在机柜集群上解决电池过充的问题就比较复杂了。机柜上面的的设备都是长时间插着USB线的,除非我们人为给机柜断电,或者拔掉设备的USB线,否则的话,设备都是处于通电状态的。

    白天的话,设备集群一般都处于工作状态,这时候给它断电的话,很容易导致设备电量不足,运行任务失败的情况。

    那深夜无测试任务时断电的话,设备管理员大半夜还要爬起来到公司机房给设备断电,就非常折磨。

    智能控电系统介绍

    因此,我们就需要一套智能控电系统,能实现 “远程” 对机柜集群进行充放电控制,甚至能做到 “定时” 对设备进行充放电管理,减少设备过充的情况,延长设备电池的寿命。

    为了实现这样一个智能控电系统,我们进行了大量的实验,最终成功定制出了 “程控版” 的USB-hub。

    设备通过USB线连接到这个hub上面,然后我们就可以通过程序远程控制该hub上面的设备充放电情况。


    (图4:定制的程控版hub)

    不仅如此,在实验过程中,我们还额外实现了控制hub上面设备的数据传输,也就是通过程序实现模拟USB的拔插操作。模拟USB拔插操作这个功能的意义非常大:

    • ① 首先是方便设备管理员远程维护集群上面不稳定的设备。有些设备因数据传输不稳定掉线,就需要管理员到现场拔插下设备才能让其上线。这里直接程序控制,就非常方便了。
    • ② 其次是方便一些硬件测试,比如U盘热拔插的数据稳定性测试,就可以通过这个模拟USB拔插操作来进行。

    最终,我们把这些功能集成到了我们的设备管理系统DeviceKeeper上,至此,对设备进行远程批量的充放电管理和模拟USB拔插操作就非常容易了:


    (图5:DeviceKeeper的智能控电功能)

    智能控电系统演示

    这里我们通过几张图片来看一下,程序控制hub工作的效果:

    小结

    传统的机柜,散热不足加上设备长时间在线,对设备电池的伤害非常大,维修成本相对较高,整个设备集群的运营成本就上来了。

    加上智能控电系统的机柜,配合良好的物理散热措施,将大大减少设备电池鼓涨/老化情况,延长集群设备的使用寿命,降低整个运营成本。


    Airtest官网http://airtest.netease.com/
    Airtest教程官网https://airtest.doc.io.netease.com/
    搭建企业私有云服务https://airlab.163.com/b2b

    官方答疑 Q 群:654700783

    呀,这么认真都看到这里啦,帮忙点个推荐支持一下呗,灰常感谢~

  • 相关阅读:
    Dreamweaver中SourceAnyWhere的使用
    访问被拒绝:“AjaxPro”的解决方案
    NDoc1.3.1使用手册
    程序中操作Excel
    模拟提交程序相关专题
    利用SMTP服务发送电子邮件
    如何使用树形控件
    GDI+简单使用例子
    程序中操作Word
    签名工具使用介绍
  • 原文地址:https://www.cnblogs.com/AirtestProject/p/15064974.html
Copyright © 2011-2022 走看看