亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.cpp

?? loadtest是根據數學上的均勻分布隨機的生成CPU利用率的負載要求
?? CPP
字號:
#include<stdio.h>#include<sys/time.h>#include<unistd.h>#include<stdlib.h>#include <fcntl.h>#include<signal.h>#include<sys/wait.h>#include<sys/types.h>#include<string.h>#include<memory.h>#include<sys/socket.h>#include<sys/stat.h>#include<arpa/inet.h>#include<string>using namespace std;#define MAXID 50#define MAXNAME 50#define MAXBUF 256#define SERVERIP "192.168.178.50"#define SERVERPORT 4567#include"IniFile.h"#include"libvirt.h"/* the data structure of time */  typedef struct timeInfo   {       long long cpu_time;       struct timeval real_time;   } timeInfoNode;typedef struct domainInfo{   int id;   char ip[16];   char domainname[MAXNAME];   int weight;   int cap;   int time;}domainInfoNode;domainInfoNode DomainInfo[MAXID];struct ClientParam{   int id;   int time;   int clientsock;};int ids[MAXID];   /* the hypervisor connection */  static virConnectPtr conn = NULL;void getTimeInfo(int id, timeInfoNode * infos){    virDomainPtr dom = NULL;       virDomainInfo info;       int ret;       /* Find the domain of the given id */      dom = virDomainLookupByID(conn, id);       if (dom == NULL)       {           fprintf(stderr, "Failed to find Domain %d\n", id);          // freeDom(dom);          // closeConn();         return ;      }       /* Get the information of the domain */      ret = virDomainGetInfo(dom, &info);       if (ret < 0)       {           fprintf(stderr, "Failed to get information for Domain %d\n", id);       //    freeDom(dom);       //    closeConn();       }         /* get the start of realTime*/      if (gettimeofday(&(infos->real_time), NULL) ==  - 1)       {           fprintf(stderr, "Failed to get start time\n");           return;       }       /* get the start of CPUTime*/      infos->cpu_time = info.cpuTime; /* nanosecond */    //  freeDom(dom); }double getDomainInfo(int id, timeInfoNode infos)   {       virDomainPtr dom = NULL;       virDomainInfo info;       int ret;       struct timeval realTime;       int cpu_diff, real_diff;       double usage;         /* Find the domain of the given id */      dom = virDomainLookupByID(conn, id);       if (dom == NULL)       {           fprintf(stderr, "Failed to find Domain %d\n", id);     //      freeDom(dom);       //    closeConn();             return 0;    }        /* Get the information of the domain */      ret = virDomainGetInfo(dom, &info);       if (ret < 0)       {           fprintf(stderr, "Failed to get information for Domain %d\n", id);        //   freeDom(dom);         //  closeConn();           return 0;     }       /* get the end of realTime*/      if (gettimeofday(&realTime, NULL) ==  - 1)       {           fprintf(stderr, "Failed to get start time\n");           return 0;       }       /* calculate the usage of cpu */      cpu_diff = (info.cpuTime - infos.cpu_time) / 1000;       real_diff = 1000000 *(realTime.tv_sec - infos.real_time.tv_sec) +            (realTime.tv_usec - infos.real_time.tv_usec);       usage = cpu_diff / (double)(real_diff);       /* print the results */     /* usage = usage*100/DomainInfo[id].cap*100;    if(usage>100)        usage = 100;    printf("usage=%.2lf\n",usage);*/     return usage*100;}  double GetCpurate(int id){  timeInfoNode * infos = new timeInfoNode;  //conn = virConnectOpenReadOnly(NULL);  getTimeInfo(id,infos);  printf("infos->cpu_time=%lld\n",infos->cpu_time);  sleep(1);  double usage = getDomainInfo(id,*infos);  return usage;}struct Log{  double cpurate;//cpu資源利用率  double alloccpu;//分配的CPU  double reallycpu;//實際用的cpu}#define MAXLOG 50struct ClientInfo{	pthread_t pid;	int domainid;        char ip[16];        int cnt;        Log log[MAXLOG]};ClientInfo clientinfo[MAXID];int  nparams;void GetDomainInfoin(int idCount){  int i,status;  int ret = fork();  if(ret==0)  {    freopen("domaininfo.tmp","w",stdout);    char * argv[ ]={"xm","sched-credit",(char*)0};    int rst = execv("/usr/sbin/xm",argv);    fclose(stdout);  }   wait(&status);   printf("已經輸出\n");   i = 0;   int flag = 0;   freopen("domaininfo.tmp","r",stdin);   char buf[1000];   fgets(buf,sizeof(buf),stdin);   while(scanf("%s %d %d %d",DomainInfo[i].domainname,&DomainInfo[i].id,&DomainInfo[i].weight,&DomainInfo[i].cap)!=EOF)   {     i++;   }   fclose(stdin);   for(i = 0;i<idCount;i++)   {     printf("%s %d %d %d\n",DomainInfo[i].domainname,DomainInfo[i].id,DomainInfo[i].weight,DomainInfo[i].cap);   }  }int Domainnumber = 0;void Init(){   int i;  int status;  conn = virConnectOpenReadOnly(NULL);  if (conn == NULL)  {      fprintf(stderr, "Failed to connect to hypervisor\n");      return ;  }  int idCount = virConnectListDomains(conn, &ids[0], MAXID);     if (idCount < 0)     {           fprintf(stderr, "Failed to list the domains\n");          // closeConn();           return ;     }  printf("Domain Totals: %d\n", idCount);  printf("讀取配置前的信息\n");  GetDomainInfoin(idCount);  IniFile Init;  Init.SetFile("InitDomain.ini");  int errLine;  bool sus = Init.load(errLine);  if(!sus)printf("讀取配置文件失敗\n");  Domainnumber = Init.ReadInteger("DomainInfo","Number");  char par1[10],par2[10],par3[10],buf[255];  int sum = 0;  string ip;  for(i = 0;i<idCount;i++)  {    sprintf(buf,"Domain%d",i);    DomainInfo[i].weight =  Init.ReadInteger(buf,"weight");    ip = Init.ReadString(buf,"ip");    strcpy(DomainInfo[i].ip,ip.c_str());    DomainInfo[i].time = Init.ReadInteger(buf,"time");    sprintf(par1,"%d", DomainInfo[i].id);    sprintf(par2,"%d",DomainInfo[i].weight);    int ret = fork();    if(ret==0)    {         char * argv[ ]={"xm","sched-credit","-d",par1,"-w",par2,(char*)0};         int rst = execv("/usr/sbin/xm",argv);    }    wait(&status);    sum +=DomainInfo[i].weight;  }  int cap = 100;  for(i = 0;i<idCount;i++)  {   if(i==idCount-1)   {     DomainInfo[i].cap =cap ;   }   else  {   DomainInfo[i].cap = (int)((DomainInfo[i].weight*100)/sum*1.0);   cap = cap - DomainInfo[i].cap;  }   sprintf(par1,"%d", DomainInfo[i].id);   sprintf(par2,"%d",DomainInfo[i].cap);   int ret = fork();    if(ret==0)     {          char * argv[ ]={"xm","sched-credit","-d",par1,"-c",par2,(char*)0};          int rst = execv("/usr/sbin/xm",argv);     }     wait(&status);  }  printf("設置完后的信息\n");  GetDomainInfoin(idCount);}#define CLIENTNUM 10int ssock,csock;struct sockaddr_in client_addr,server_addr;char buf[MAXBUF];int clientnum=0;ClientParam clientparam[MAXID];int GetdomainId(char* ip){   int id,i;   for(i = 0;i<Domainnumber;i++)   {      if(!strcmp(DomainInfo[i].ip,ip))             return i;   }   return -1;}void *clientmsg(void* param){  ClientParam* ptr =(ClientParam*)param;  char snd_buf[1024];  int time = ptr->time;  int id = ptr->id;  while(1)  {    memset(snd_buf,0,sizeof(snd_buf));    sprintf(snd_buf,"%s","workload");    printf("發送%s消息\n",snd_buf);    send(clientparam[id].clientsock,snd_buf,sizeof(snd_buf),0);    sleep(time);  //  printf("物理CPU利用率%.2lf",GetCpurate(10));  }}int GetIdbydomainid(int id){  int i;  for(i = 0;i<clientnum;i++)   {      if(clientinfo[i].domainid == id)          return i;   }   return -1;}void *checkcpurate(void* param){  int i;  int time;  int id;  ClientInfo clienttmpinfo[MAXID];  double cpurate[MAXID];  while(1)  {    sleep(time);    for(i = 0;i<idCount;i++)    {      cpurate[i] =GetCpurate(DomainInfo[i].id);      id = GetIdbydomainid(DomainInfo[i].id);      clientinfo[id].cnt++;      if(clientinfo[id].cnt==MAXID)      {         cnt--;              }      clientinfo[id].log[cnt-1].reallycpu = GetCpurate(DomainInfo[i].id);      clientinfo[id].log[cnt-1].alloccpu = clientinfo[id].log[cnt-1].alloccpu;      clientinfo[id].log[cnt].cpurate = clientinfo[id].log[cnt].reallycpu/clientinfo[id].log[cnt].alloccpu;    }  }}int main(){  Init();  if((ssock=socket(PF_INET,SOCK_STREAM,IPPROTO_TCP))<0)  {    perror("socket error:");    exit(1);  }  socklen_t clen = sizeof(client_addr);  memset(&server_addr,0,sizeof(server_addr));  server_addr.sin_family     =AF_INET;  server_addr.sin_addr.s_addr=htonl(INADDR_ANY);  server_addr.sin_port=htons(SERVERPORT);  if(bind(ssock,(struct sockaddr *)&server_addr,sizeof(server_addr))<0)  {   perror("bind error");   exit(1);  }  if(listen(ssock,10)<0)  {    perror("listen error:");    exit(1);  }  sockaddr_in addr;   int ret;  socklen_t  len = sizeof(addr);  printf("服務器%s啟動......\n",SERVERIP);  memset(&clientinfo,0,sizeof(clientinfo));  while(csock=accept(ssock,(struct sockaddr *)&client_addr,&clen))  {    clientparam[clientnum].clientsock=csock;   // getsockname(ssock,(struct sockaddr *)&addr ,&len);     sprintf(clientinfo[clientnum].ip,"%s",inet_ntoa(client_addr.sin_addr));    printf("來自%s的連接\n",clientinfo[clientnum].ip);    clientinfo[clientnum].domainid = GetdomainId(clientinfo[clientnum].ip);    clientinfo[clientnum].log[0].alloccpu = DomainInfo[clientinfo[clientnum].domainid].cap*1.0;    clientparam[clientnum].id = clientnum;    clientparam[clientnum].time = DomainInfo[clientinfo[clientnum].domainid].time;    printf("time=%d\n",clientparam[clientnum].time);    ret = pthread_create(&clientinfo[clientnum].pid, NULL, clientmsg, &clientparam[clientnum]);    if(ret<0)      printf("創建線程失敗\n");    else     printf("線程創建成功\n");    clientnum++;  }  return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产伦理网| 精品视频免费在线| 精品午夜一区二区三区在线观看| 亚洲电影在线免费观看| 一区二区三区日韩精品| 一区二区三区久久久| 亚洲制服欧美中文字幕中文字幕| 亚洲视频在线一区二区| 亚洲欧美自拍偷拍色图| 亚洲视频电影在线| 亚洲一区在线视频| 日韩精品久久久久久| 丝袜脚交一区二区| 久久国产综合精品| 国产91精品欧美| 成人一级片在线观看| 成人av网在线| 欧美在线|欧美| 欧美一区二区三区啪啪| 精品国产乱码久久久久久牛牛| 精品国产乱码久久久久久久久| 精品蜜桃在线看| 国产精品视频线看| 亚洲成人精品在线观看| 免费在线观看一区二区三区| 国产精品一区二区三区网站| 99精品久久久久久| 欧美精品1区2区3区| 国产日韩av一区| 亚洲图片欧美一区| 国产一区不卡在线| 色素色在线综合| 亚洲精品一区在线观看| 中文字幕一区二区三区视频| 亚洲第一激情av| 粉嫩蜜臀av国产精品网站| 日韩一区二区在线播放| 精品国产精品网麻豆系列| 中文字幕日韩一区| 美腿丝袜亚洲综合| 色综合天天综合网国产成人综合天 | 中文字幕欧美日本乱码一线二线| 亚洲精品视频免费看| 蜜桃久久久久久久| 色爱区综合激月婷婷| 欧美精品一区二区高清在线观看| 一区二区三区在线观看国产| 国产综合色精品一区二区三区| 色婷婷一区二区三区四区| 精品国产免费一区二区三区四区 | 六月婷婷色综合| 91在线播放网址| 久久综合狠狠综合久久综合88| 曰韩精品一区二区| 成人精品一区二区三区中文字幕| 91精品国产综合久久精品| 综合婷婷亚洲小说| 国产成人免费视频精品含羞草妖精| 欧美三级三级三级爽爽爽| 亚洲色图在线播放| 国产91精品免费| 久久久不卡影院| 免费观看在线综合色| 欧美日韩国产综合久久| 亚洲黄网站在线观看| 99视频精品全部免费在线| 国产午夜一区二区三区| 久久www免费人成看片高清| 7777精品伊人久久久大香线蕉超级流畅| 中文在线资源观看网站视频免费不卡| 久久精品国产99| 欧美videos中文字幕| 青青草成人在线观看| 欧美一区二区精品在线| 日韩高清不卡在线| 欧美一二三四区在线| 五月婷婷色综合| 91精品国产综合久久婷婷香蕉 | 欧美电影免费观看高清完整版在线 | 欧美一区二区在线免费播放 | 国产精品欧美精品| 国产精品一色哟哟哟| 久久欧美中文字幕| 国产精品一区二区男女羞羞无遮挡| 欧美mv和日韩mv国产网站| 久久精品国产一区二区| 日韩欧美一级二级三级| 激情欧美一区二区三区在线观看| 精品国产乱码久久久久久免费| 久久99国内精品| 国产调教视频一区| 91视频国产观看| 亚洲国产日韩a在线播放| 欧美吻胸吃奶大尺度电影| 亚洲18女电影在线观看| 555www色欧美视频| 久久精品av麻豆的观看方式| 精品国产伦理网| 成人av在线资源网| 亚洲精品乱码久久久久久| 欧美精品久久一区二区三区| 久久精品国产成人一区二区三区| 久久精品视频免费观看| 99国产精品一区| 日韩国产精品大片| 久久久99精品久久| 欧美在线观看视频一区二区| 日韩电影网1区2区| 久久亚洲精华国产精华液| 懂色av一区二区在线播放| 亚洲午夜精品一区二区三区他趣| 欧美一区二区在线免费观看| 高清av一区二区| 天天影视涩香欲综合网| 国产欧美一二三区| 欧美妇女性影城| 岛国一区二区在线观看| 视频在线观看一区| 国产精品久久久久久久久快鸭| 欧美另类久久久品| 99视频在线精品| 精品一区二区在线播放| 亚洲一区在线观看网站| 久久久www成人免费毛片麻豆| 欧美私人免费视频| 成人app下载| 黄色日韩三级电影| 日本中文一区二区三区| 亚洲欧美激情视频在线观看一区二区三区| 欧美日韩国产精选| 91麻豆免费看| 国产91清纯白嫩初高中在线观看| 日韩高清一区在线| 亚洲电影一级片| 中文字幕人成不卡一区| 亚洲综合色丁香婷婷六月图片| 久久久精品影视| 欧美不卡一区二区三区四区| 欧美另类一区二区三区| 欧美一a一片一级一片| 97se亚洲国产综合自在线不卡| 国产大片一区二区| 国产精品一区二区久激情瑜伽| 日本欧美肥老太交大片| 午夜精品爽啪视频| 午夜伊人狠狠久久| 婷婷中文字幕综合| 天堂在线亚洲视频| 日韩av中文字幕一区二区三区| 亚洲国产成人av| 午夜久久电影网| 亚洲成人久久影院| 日本va欧美va精品| 看国产成人h片视频| 久久99国产精品免费网站| 精品夜夜嗨av一区二区三区| 久久成人麻豆午夜电影| 国内精品久久久久影院色| 国产专区欧美精品| 国产成人在线影院| 成人午夜免费电影| 91老司机福利 在线| 欧美私模裸体表演在线观看| 欧美日韩国产美| 精品卡一卡二卡三卡四在线| 久久综合久久综合九色| 亚洲国产精品激情在线观看 | 99久久国产免费看| 一本色道久久综合亚洲精品按摩| 欧美伊人久久久久久午夜久久久久| 欧美日韩在线播| 欧美电影免费提供在线观看| 欧美极品美女视频| 一区二区三区在线视频播放| 亚洲成av人片www| 国产一区二区福利视频| 91视视频在线直接观看在线看网页在线看| 91天堂素人约啪| 51精品国自产在线| 久久影音资源网| 亚洲精品视频一区| 麻豆精品在线视频| 成人app软件下载大全免费| 欧美日韩中字一区| 久久久久99精品国产片| 亚洲综合色自拍一区| 久久国产三级精品| 97se亚洲国产综合自在线不卡| 国产精品久久久久久一区二区三区 | 麻豆精品蜜桃视频网站| 国产91精品久久久久久久网曝门 | 免费成人在线网站| 成人av电影在线观看| 欧美一区二区三级| 国产精品久久久久婷婷二区次| 午夜精品久久久久久久99水蜜桃 | 毛片av一区二区| 99久久精品费精品国产一区二区| 欧美午夜精品久久久| 国产片一区二区|