• 沒有找到結果。

撰寫模擬程式與執行

在文檔中 中 華 大 學 (頁 42-46)

第四章 實驗設計

第五節  撰寫模擬程式與執行

另一台 VMWare Server 所建構的虛擬主機當實驗應用前的查詢伺服器。查詢伺服 器的功能在於本實驗因為每個綱要都要跑長達 16 個鐘頭的資料庫應用,所以需要大 量的 SQL Where 條件當隨機變數,但是因為這樣的一個行為也會產生資料庫的 Cache、Memory、Disk I/O 變化,造成在效能監視上的不客觀,這時候就必須再準備 一台備有一模一樣的資料庫伺服器來當應用之前的 where 條件查詢。

個小時的效能數據,最後,一個綱要模擬執行完之後把 Oracle Server 重新開機,再 執行另一個綱要模擬,以此類推把三個綱要模擬完成。不論是水平式綱要、垂直式綱 要或是混合式綱要,所有的模擬都是同樣的流程步驟,而程式的執行主要有下列幾個 步驟:

1. 決定所有 Query 啟動時間

因為這 24 個 Query 的前置查詢時間所得到的回應數量很大,所以回應時間不一 致,因此在最一開始就要決定了正式應用的同步啟動時間,本研究是設定在 10 鐘後啟動所有正式應用,在此之間是做前置查詢與空迴圈去等待正式執行應用時 間到來。

I. 刪除掉 2008/06/26 日所有的記錄

因為有以時間做為 where 條件的定時應用來模擬線上資料庫記錄的產生,所 以本研究模擬資料寫入之前必須先刪除資料。而選擇 2008/06/26 這天來模 擬是因為這天的資料記錄是整個資料庫裡面資料最多的一天。

II. 查詢 VMWare 上的 where 條件

在做正式應用之前,每個綱要的 24 個 Model 都會先去 VMWare Oracle Server 查詢回他們所需要的 where 條件

2. 同時啟動模擬應用程式與 2008/06/26 資料寫入程式

3. 決定觸發應用頻率。在觸發頻率上分為兩類,第一類是定時觸發,第二類是隨機 觸發

I. 定時觸發。應用程式所針對的是常務性質的應用工作。例如:生產線的每分 鐘生產狀況、一個輪班的生產不良率狀況等等資訊。

II. 隨機觸發。隨機觸發則是非常務性工作的執行,例如:統計錯誤的形式與數 量、生產良率等等資訊來模擬一般工作時間業務隨機應用。

本研究的隨機頻率是採用指數分布來決定隨機觸發應用時間的長度。在機率 論和統計學中,指數分布(Exponential distribution)是一種連續機率分布。

指數分布可以用來表示獨立隨機事件發生的時間間隔;比如旅客進機場的時間間 隔、或是速食商店排隊客戶等待服務的時間間隔等等。

4. 啟動正式應用與 2008/06/26 資料寫入

I. 每分鐘都去查詢 VMWare Oracle Server 上 2008/06/26 的生產記錄的此刻 時間,並把查詢結果寫入到正式應用的 Oracle Server 上,做為生產紀錄的 寫入模擬。

II. 把前置查詢放在陣列變數上的資料用 PHP 所提供的亂數函數取出一組供正 式應用使用。

5. 判斷是否超過程式持續執行時間

下列圖 4-7 為整個完整的程式模型架構圖。

圖4-7 程式模型架構圖

應用結束後所得到的數據結果,在本研究中以執行應用所耗費的時間(Elapsed

Time)、實體讀取時間(Physical Reads)、邏輯讀取(Logical Reads)、以及實體寫入 (Physical Writes)為評比指標,數據比較與結果分析將在下一章做一個說明。

在文檔中 中 華 大 學 (頁 42-46)

相關文件