<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問(wèn) http://qaseven.github.io/

    使用LoadRunner監(jiān)測(cè)MySQL數(shù)據(jù)庫(kù)的性能

       方法一:要想使用LoadRunner監(jiān)測(cè)MySQL數(shù)據(jù)庫(kù)性能,LoadRunner沒(méi)有提供直接監(jiān)測(cè) MySQL的功能,所以,我們需要借助sitescope監(jiān)控,然后在LoadRunner顯示sitescope監(jiān)測(cè)結(jié)果,這樣間接地監(jiān)控MySQL性能。

      相信大家對(duì)LoadRunner應(yīng)該十分熟悉了,所以在這里,我大概介紹下sitescope的安裝和使用。

       sitescope是安裝在被監(jiān)測(cè)數(shù)據(jù)庫(kù)所在的計(jì)算機(jī)上的,是一個(gè)比較新的軟件,在網(wǎng)上很難下載在免費(fèi)使用版,我是找了一下午才在一個(gè)論壇里找到一位老好心人上傳的7.9.5版本和license,相當(dāng)?shù)暮糜茫媸且x謝這位兄臺(tái)了!下載地址:http://bbs.51testing.com/viewthread.php?tid=80283

      軟件下載好后,安裝應(yīng)該很容易了。安裝好后系統(tǒng)重啟,再次開(kāi)機(jī)時(shí),會(huì)自動(dòng)跳出sitescope的初始網(wǎng)頁(yè),要求輸入license等資料。保存后自動(dòng)跳出網(wǎng)頁(yè)提示,輸入對(duì)應(yīng)的網(wǎng)址進(jìn)入sitescope主界面。(sitescope是運(yùn)行在瀏覽器上的一款軟件,每次要打開(kāi)時(shí),只要打開(kāi)瀏覽器輸入對(duì)應(yīng)的網(wǎng)址即可進(jìn)入對(duì)應(yīng)的sitescope主界面。)

      監(jiān)測(cè)MySQL需要使用到JDBC驅(qū)動(dòng)程序,為了讓sitescope能夠監(jiān)測(cè)到 MySQL。下載地址:http://www.mysql.com/downloads/connector/j/

       下載成功后,解壓文件,把“mysql-connector-java-5.1.12-bin.jar”這個(gè)壓縮文件復(fù)制到(sitescope安裝目錄下)sitescope\java\lib\ext下,重啟系統(tǒng)。

      進(jìn)入sitescope主界面,點(diǎn)擊“create group”,輸入自定義的組名,即可成功添加group。

      進(jìn)入新建的組,在“Add to Group”一欄下點(diǎn)擊monitor,新添加monitor。

      然后“Add Database Query monitor”。

      這里是關(guān)鍵:

      Database Connection URL:jdbc:mysql://<database hostname>[:<tcp port>]/<database>

      for example:要連接MySQL的數(shù)據(jù)庫(kù)aBigDatabase,用MySQL的標(biāo)準(zhǔn)端口3306,則為 jdbc:mysql://206.168.191.19/aBigDatabase

      Query:show status where variable_name like ’innodb_buffer_pool_pages_total’

      Database Driver:org.gjt.mm.mysql.Driver

      updates時(shí)間和title可以根據(jù)自己的需要設(shè)置。

      Database User Name和Database Password需要咨詢(xún)數(shù)據(jù)庫(kù)管理員,拿到超級(jí)用戶(hù)的用戶(hù)名和密碼。

      點(diǎn)擊“Add”,保存即可。到此為止,sitescope已經(jīng)能夠監(jiān)測(cè)到數(shù)據(jù)的信息了。接下去是連接LoadRunner。

      打開(kāi) LoadRunner的Controller,在“run”中添加“sitescope”,即可成功監(jiān)測(cè)到被測(cè)數(shù)據(jù)庫(kù)的信息了。哈哈,大功告成了!!!

      備注:

      MercyrySiteScope介紹:它是一款無(wú)代理監(jiān)測(cè)解決方案,可確保分布式IT基礎(chǔ)架構(gòu)——如服務(wù)器、操作系統(tǒng)、網(wǎng)絡(luò)設(shè)備、網(wǎng)絡(luò)服務(wù)、應(yīng)用和應(yīng)用組件的可用性和性能。這款主動(dòng)的、基于Web界面的基礎(chǔ)架構(gòu)監(jiān)測(cè)解決方案是非常簡(jiǎn)潔的,而且完全根據(jù)客戶(hù)度身定制,無(wú)需在您的上線系統(tǒng)中增加額外的代理。

      SiteScope為上線系統(tǒng)提供24×7的監(jiān)控服務(wù),為維護(hù)工程師及時(shí)發(fā)現(xiàn)問(wèn)題提供幫助,確保系統(tǒng)架構(gòu)內(nèi)一切組建的正常運(yùn)作。SiteScope在大量增加檢測(cè)周期的同時(shí)也降低了維護(hù)人員的工作成本 。

      SiteScope能夠監(jiān)控UNIX服務(wù)器資源、windows服務(wù)器資源、weblogic應(yīng)用服務(wù)器、IIS應(yīng)用服務(wù)器、Oracle數(shù)據(jù)庫(kù)、 SQLServer數(shù)據(jù)庫(kù)、F5、URL地址、Ping、內(nèi)存、CPU、磁盤(pán)空間、服務(wù)等等系統(tǒng)架構(gòu)內(nèi)各種組建的運(yùn)行狀況;監(jiān)控器按照指定頻率對(duì)目標(biāo)進(jìn)行檢測(cè),一旦發(fā)現(xiàn)異常會(huì)及時(shí)向管理員發(fā)送意外事件的報(bào)警,警報(bào)可以通過(guò)聲音提醒、email、短信等方式發(fā)送;另外,SiteScope還可以生成監(jiān)測(cè)活動(dòng)的匯總報(bào)告,該對(duì)象從日志文件中讀取歷史信息,接著總結(jié)、篩選信息,并生成圖表格式的報(bào)告。

      SiteScope利用Database Query monitor監(jiān)控指定的數(shù)據(jù)庫(kù),通過(guò)SiteScope監(jiān)控器的SHOW STATUS命令,獲得相應(yīng)數(shù)據(jù),命令如下:

      show status where variable_name like ’innodb_buffer_pool_pages_total’

      為了確保監(jiān)控請(qǐng)確認(rèn)LoadRunner and SiteScope之間的端口, SiteScope和MySQL必須打開(kāi)TCP 8888和TCP 3306 . 還有SiteScope要監(jiān)控必須要確保有JDBC的安裝。

      以下為監(jiān)控前需要注意的地方:

      1. SiteScope to be deployed.

      2. Sufficient license points for Database Query monitor.

      3. TCP 8888 (default) opened two-way for LoadRunner to SiteScope.

      4. TCP 3306 (default) opened two-way for SiteScope to MySQL.

      5. Monitoring privileges for SiteScope to monitor MySQL.

      6. JDBC driver to be installed on SiteScope.

      7. Have knowledge of the counter you want to monitor.

    方法二:通過(guò)編寫(xiě)腳本來(lái)進(jìn)行監(jiān)控

    // mysql_dll.cpp : Defines the entry point for the DLL application.

    #include "stdafx.h"
    #include "stdlib.h"

    MYSQL *conn=NULL;
    MYSQL_RES *p_res_ptr=NULL;
    MYSQL_ROW sqlrows;


    BOOL APIENTRY DllMain( HANDLE hModule,
                           DWORD  ul_reason_for_call,
                           LPVOID lpReserved
          )
    {
        return TRUE;
    }

    extern "C" int _declspec(dllexport) init_mysql_connection(char *str_server,char *str_username,char *str_pwd,char *str_Table)
    {
    conn=mysql_init(NULL);

        if(!conn)
    {
      printf("\nFailed to initate MySQL connection");
      return 1;
      exit(0);
    }
        else
    {
      printf("\nSuccess to initate MySQL connection");
      if (!mysql_real_connect(conn,str_server,str_username,str_pwd,str_Table,0,NULL,0))
      {
       printf( "Failed to connect to MySQL: Error: %s\n", mysql_error(conn));
      }
      else
      {
       printf("\nLogged on to %s sucessfully",str_server);
       return 0;
      }
      return 0;
    }
    }

    extern "C" int _declspec(dllexport) close_mysql_connection()
    {
    if(conn=NULL)
    {
      printf("\nConnection is Null");
      return 1;
      exit(0);
    }
    else
    {
         mysql_free_result(p_res_ptr);
      printf("\nClose connection");
      mysql_close(conn);  
      return 0;
    }
    }

    //"show status like \'qcache%\'"

    extern "C" int _declspec(dllexport) get_mysql_table_query(char *str_query)
    {
    int res=0;
    res=mysql_query(conn,str_query);
    if(res)
    {
      printf("Failed to mysql query: Error: %s\n", mysql_error(conn));
      return 1;
    }
    else
    {
      printf("\nSucess in Mysql Query");
      return 0;

    }

    }

     

    extern "C" int _declspec(dllexport) get_mysql_query_data(char *str_query,char *str_data)
    {
        unsigned long u1_numrow=0;
        unsigned int i_index = 0;
    p_res_ptr=mysql_use_result(conn);

    if(p_res_ptr){

      while((sqlrows=mysql_fetch_row(p_res_ptr))){
     
       if(*sqlrows[0]=*str_query)
       {
        strcpy(str_data,sqlrows[1]);
     
     
       }
      }
    }

    return NULL;

    }

     

    lr 9.1中代碼
    Action()
    {

            int i=0;
            double x;
            char *str_data;


            str_data=(char *)malloc(20*sizeof(char));
            lr_load_dll("D:\\vc\\mysql_dll\\Debug\\mysql_dll.dll");
            i= init_mysql_connection("localhost","root","123456","mysql");
            lr_output_message("%d",i);
     
           for(;;)
           {
                get_mysql_query_data("Qcache_hits",str_data);
                i=get_mysql_table_query("show status like \'qcache%\'");
                lr_output_message("%d",i);
                x = atof(str_data);
                lr_user_data_point("hits",x);
                lr_think_time(5);
           }
            lr_output_message("%d",x);
         close_mysql_connection();
    return 0;
    }


    posted on 2012-06-04 15:10 順其自然EVO 閱讀(1386) 評(píng)論(1)  編輯  收藏 所屬分類(lèi): loadrunner性能測(cè)試

    評(píng)論

    # re: 使用LoadRunner監(jiān)測(cè)MySQL數(shù)據(jù)庫(kù)的性能 2012-10-29 10:24

    你好,請(qǐng)問(wèn)sitescope是一定要安裝到mysql的機(jī)器上嗎  回復(fù)  更多評(píng)論   

    <2012年6月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    1234567

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(55)

    隨筆分類(lèi)

    隨筆檔案

    文章分類(lèi)

    文章檔案

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 免费爱爱的视频太爽了| 亚洲国产av一区二区三区丶| 成年性午夜免费视频网站不卡| 无码精品一区二区三区免费视频| 亚洲免费视频一区二区三区| 狠狠综合亚洲综合亚洲色| 亚洲第一成年免费网站| 中国china体内裑精亚洲日本| 亚洲美免无码中文字幕在线| 亚洲AV无码专区电影在线观看| 亚洲大尺度无码专区尤物| 亚洲韩国精品无码一区二区三区| 亚洲欧洲∨国产一区二区三区| 国产亚洲婷婷香蕉久久精品| 亚洲日韩一区二区三区| 精品一区二区三区免费毛片| 色多多免费视频观看区一区| 一区二区视频免费观看| 精品视频在线免费观看| 伊人久久免费视频| 亚洲A∨精品一区二区三区| 免费在线视频一区| 最新国产AV无码专区亚洲| 亚洲av女电影网| 亚洲乱码在线视频| 国产在线观a免费观看| 99精品视频在线观看免费播放 | 国产免费资源高清小视频在线观看| 国产一区二区三区在线观看免费| 亚洲最大的成网4438| 亚洲日韩精品国产一区二区三区| 无码国产精品一区二区免费式芒果 | 亚洲福利在线播放| 久久久久久久尹人综合网亚洲| 亚洲av成人中文无码专区| rh男男车车的车车免费网站| 大学生一级特黄的免费大片视频| 亚洲一区二区三区国产精品| 久久精品国产亚洲香蕉| 色爽黄1000部免费软件下载| 99久久综合精品免费|