Tsung用于壓測MySQL服務器的腳本

發表于:2013-10-22來源:外刊IT評論作者:淘寶褚霸點擊數: 標簽:壓力測試
這個MySQL服務器壓測的需求是 :Tsung用于壓測MySQL服務器的腳本 環境: Linux RHEL 5U4 X86-64, 24G內存, 16核. MySQL服務器在10.232.36.100上。

  這個MySQL服務器壓測的需求是 :

  環境: Linux RHEL 5U4 X86-64, 24G內存, 16核.

  MySQL服務器在10.232.36.100上。

  壓力由最多32個客戶端發起,每個客戶端分別做update, insert, delete操作,概率分別是50%, 30%, 20%, 每種操作循環999999 × 100次,每100次操作后休息1-3秒。

  這樣的壓力最多持續2個小時。

  我們用的是著名的tsung壓力測試工具, 之前我有篇blog介紹過, 見這里。

  以下是用到的腳本, 用到了比較先進的隨機動態參數替換等技術,對于編寫此類腳本有很大的借鑒意義。

以下是代碼片段:
<!DOCTYPE tsung SYSTEM "/usr/local/share/tsung/tsung-1.0.dtd">
<tsung loglevel="warning" dumptraffic="false">

  <clients>
    <client host="localhost" use_controller_vm="true"/>
  </clients>

 <servers>
  <server host="10.232.36.100" port="3306" type="tcp"/>
 </servers>

 <load>
  <arrivalphase phase="1" duration="2" unit="hour">
    <users interarrival="0.1" unit="second" maxnumber="32"></users>
  </arrivalphase>
 </load>

 <sessions>
  <session probability="50" name="st-replace" type="ts_mysql">

      <request>
        <mysql type="connect" />
      </request>
      <request>
        <mysql type="authenticate" database="test" username="test" password="mysqltest" />
      </request>  

      <for from="1" to="999999" var="counter">
        <for from="1" to="100" var="counter">
          <setdynvars sourcetype="random_number" start="1" end="999999999">
            <var name="rnd_uid" />
          </setdynvars>
          <setdynvars sourcetype="random_string" length="13">
            <var name="rnd_uname" />
          </setdynvars>
          <setdynvars sourcetype="random_number" start="0" end="1">
            <var name="rnd_male" />
          </setdynvars>
          <setdynvars sourcetype="random_number" start="1" end="120">
           <var name="rnd_age" />
         </setdynvars>
         <setdynvars sourcetype="random_string" length="10">
           <var name="rnd_city" />
         </setdynvars>
         <setdynvars sourcetype="random_string" length="52">
           <var name="rnd_profile" />
         </setdynvars>
         <request subst="true">
           <mysql type="sql">replace into user(tid, uname, male, age, city, profile) values(%%_rnd_uid%%, "%%_rnd_uname%%", %%_rnd_male%%, %%_rnd_age%%, "%%_rnd_city%%", "%%_rnd_profile%%") </mysql>
         </request>
        </for>
        <thinktime min="2" max="5" random="true" />
      </for>

      <request>
        <mysql type="close"></mysql>
      </request>
  </session>

  <session probability="20" name="st-delete" type="ts_mysql">

      <request>
        <mysql type="connect" />
      </request>
      <request>
        <mysql type="authenticate" database="test" username="test" password="mysqltest" />
      </request>  

      <for from="1" to="999999" var="counter">
        <for from="1" to="100" var="counter">
          <setdynvars sourcetype="random_number" start="1" end="999999999">
            <var name="rnd_uid" />
          </setdynvars>
          <request subst="true">
            <mysql type="sql">delete from user where tid = %%_rnd_uid%% </mysql>
          </request>
        </for>
        <thinktime min="2" max="5" random="true" />
      </for>

      <request>
        <mysql type="close"></mysql>
      </request>
  </session>

  <session probability="30" name="st-update" type="ts_mysql">

      <request>
        <mysql type="connect" />
      </request>
      <request>
        <mysql type="authenticate" database="test" username="test" password="mysqltest" />
      </request>  

      <for from="1" to="999999" var="counter">
        <for from="1" to="100" var="counter">
          <setdynvars sourcetype="random_number" start="1" end="999999999">
            <var name="rnd_uid" />
          </setdynvars>
         <setdynvars sourcetype="random_string" length="52">
           <var name="rnd_profile" />
         </setdynvars>

         <request subst="true">
           <mysql type="sql">update  user set profile = "%%_rnd_profile%%" where tid = %%_rnd_uid%% </mysql>
         </request>
        </for>
        <thinktime min="2" max="5" random="true" />
      </for>

      <request>
        <mysql type="close"></mysql>
      </request>
  </session>

 </sessions>
</tsung>

原文轉自:http://blogread.cn/it/article/2974

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97