zoukankan      html  css  js  c++  java
  • 自己编写高负荷測试的工具

           近期一个项目,客户要求进行高负荷測试;所谓高负荷測试时看系统在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;
    }


     

       

  • 相关阅读:
    RNN 一对一
    js只保留整数,向上取整,四舍五入,向下取整等函数
    oracle中的decode的使用
    ORACLE里锁有以下几种模式,v$locked_object,locked_mode
    时间序列/信号处理开源数据集-转
    ORACLE常用数值函数、转换函数、字符串函数
    Oracle to_date()函数的用法
    java使double保留两位小数的多方法 java保留两位小数
    Oracle修改字段类型方法总结
    POI对Excel自定义日期格式的读取
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/3997172.html
Copyright © 2011-2022 走看看