• Coredump-Z: 系统容量提升时出现的一种情况


    简介

    这个也属于软件设计类型的问题。
    做容量提升,是说原有软件已经存在很多年(有的可能多达十几,二十几年),经过多年的摸爬滚打,还算稳定。
    后续客户要求,将某些功能的容量提升一下,比如:原来系统支持256个vlan,要提高容量,要求支持1024个vlan。
    这个时候就很容易碰到各种coredump。

    原因-原有数组容量不够

    尤其是在大型软件开发,大家都是按照模块划分,导致容量的提升代码修改,非常的繁琐;所以这种提升容量的开发,一般都是采用测试驱动开发。哪里需要改,就改哪里。
    原有数组如果容量不够,有没有加越界限制,就会出现coredump;因为,原来只需要填充256个vlan的信息,后续要填充1024个vlan记录。

    还有一种情况,就是在打日志时,使用到字符数组,这种容量提升也是容易碰到字符数组越界,尤其是使用不安全的字符操作函数比如:sprintf, strcat,等等

    测试驱动的不足

    这种测试驱动的容量提升开发,有一个缺点就是,如果测试不能面面俱到,可能导致有些问题只能到客户哪里才能暴漏。切记。所以需要测试的经验充足。

    解决

    从设计架构的角度去考虑问题的话,这种有可能扩容的功能,最好事先设计好;
    但是问题是:这种设计是需要花费更多的时间去,以及协调各个模块的开发;而且不可预知是否一定会有扩容的发生,也就不确定有没有意义;而且随着软件生命周期的进行,开发人员的流动导致某些功能点的知识遗漏。

  • 相关阅读:
    猿创征文|[云原生] docker查看日志用法笔记
    电子商务盛行,怎么提高商店转换率?
    速盾:高防服务器防御 DDoS 攻击的掩护技巧
    angular 测试 api 说明
    linux内存页回收
    狂神springcloud速补笔记3
    云服务器yum安装mysql
    简述什么是迭代器(Iterator)?
    JavaSE - 类和对象
    线性代数中涉及到的matlab命令-第一章:行列式
  • 原文地址:https://blog.csdn.net/qq_36428903/article/details/125532846