• 自己编写高负荷測试的工具


           近期一个项目,客户要求进行高负荷測试;所谓高负荷測试时看系统在CPU占用或MEM占用率极高情况下的表现。

           在第一轮測试时,我们通过在LINUX操作系统上,用压缩和解压缩的方法去占用CPU,这个方案有个弊端,就是比較耗时并且不可控。

    在这种測试情况下,客户非常不惬意。提出了非常多的问题。

           还要客户给了第二轮測试的机会,然后我就通过百度或谷歌,寻找高负荷測试的工具。结果一无所获。我后来想做为一个程序猿,能否够自己动手写一个这种程序呢?

    通过分析原理,占用CPU,就是让CPU可劲的进行运算;占用MEM,就是申请内存BUFFER。 分析出这个原理后,接下来的事情,就简单了。

           我设计的占用CPU的程序详细例如以下:

          

    #include <stdlib.h>
    #include <stdio.h>
    #include <unistd.h>
     
    int main(int argc,char ** argv)
    {
        int looptimes;
        float a,b,c;
        int i;
        a = 1000000.0;
        b = 8765.0;
        i = 1;
        looptimes = atoi(argv[1]);
        while(1)
        {
            c = a / b;
            i ++;
            if((i % looptimes) == 0)
            {
                usleep(100);
            }
        }
       //printf("argc=%d
    ",argc);
       //printf("argv=%s
    ",*argv++);
       //printf("argv=%s
    ",*argv);
       //argc=2
       //argv=./occu
       //argv=100 
       return 0;
    }


     

    我设计的占用MEM的代码详细例如以下:

    #include <stdlib.h>
    #include <stdio.h>
    #include <unistd.h>
     
    int main(int argc,char ** argv)
    {
        unsigned int initbytenum;
        void * buf;
        initbytenum = atoi(argv[1]);
        initbytenum = 1024 * 1024 * initbytenum;
        printf("initbytenum=%ld
    ",initbytenum);
        buf = malloc(initbytenum);
        memset(buf,0,  initbytenum);
        int a;
        a=0;
        int t;
        t =1;
        while(a!=9)
        {
            if(t % 100 == 0)
            {
                scanf("%d",&a);
                t =1;
            }
            t++;
            buf = malloc(initbytenum); 
            memset(buf,0,  initbytenum); 
        }    
       //printf("argc=%d
    ",argc);
       //printf("argv=%s
    ",*argv++);
       //printf("argv=%s
    ",*argv);
       //argc=2
       //argv=./occu
       //argv=100 
       return 0;
    }


     

       

  • 相关阅读:
    尝试了一下Flex
    Flash版的拉格朗日插值程序
    关于CSS属性display:none和visible:hidden的区别
    KMaster知识管理平台功能简介
    企业级知识库系统KMaster推荐
    ie6下的location.href错误
    利用Jquery实现http长连接(LongPoll)
    jQuery高亮插件
    当前知识管理系统的焦点问题以及我的一些解决办法
    知识库如何跟其他业务系统结合
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/3997172.html
Copyright © 2020-2023  润新知