<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)論排行榜

    主站蜘蛛池模板: 亚洲国产精品综合久久一线| 亚洲免费观看网站| 啊v在线免费观看| 亚洲av无码一区二区三区在线播放 | 久久免费福利视频| 国产亚洲精品a在线观看app| 中文字幕在线观看免费| 亚洲精品乱码久久久久蜜桃| 久久国内免费视频| 亚洲国产综合精品中文第一| 无人在线观看完整免费版视频| 99亚偷拍自图区亚洲| 美女黄网站人色视频免费国产 | 最近免费最新高清中文字幕韩国 | 亚洲精品国产首次亮相| 午夜毛片不卡高清免费| WWW亚洲色大成网络.COM| 亚洲第一永久AV网站久久精品男人的天堂AV | 99视频在线免费看| 亚洲国产精品美女| 最近免费中文字幕4| 黄色一级视频免费| 国产亚洲精久久久久久无码| 97在线视频免费播放| 67194在线午夜亚洲| 国产免费AV片无码永久免费| 特色特黄a毛片高清免费观看| 亚洲人JIZZ日本人| 最近中文字幕免费完整| 亚洲码和欧洲码一码二码三码 | 亚洲综合自拍成人| 成人免费男女视频网站慢动作| 国产亚洲福利精品一区二区| 国产AⅤ无码专区亚洲AV| 亚洲黄色免费在线观看| 亚洲人成网站在线在线观看| 亚洲精品国产精品乱码不卞| 午夜精品一区二区三区免费视频| 亚洲人成色77777在线观看| 国产成人精品日本亚洲专区| 91精品国产免费入口|