1 準備一個partition (就是讓postmark噴 request過去的啦)。
a. what size of partition
b. what filesystem
e.g., sudo postmark xx.conf
2 打開blktrace (準備攔截噴到那個partition的IO)
例如 blktrace -d /dev/sda3
note: 如果你硬要自己取 blktrace outputfile的名子,要小心…。e.g., 我取『pm_64- 128file_32rec_5000WTx_5GB.blktrace.out』 這個名子 blkparse 都失敗…
3 新開一個terminal來啟動 postmark →設參數 (看你想要什麼樣的workload) → run
這樣postmark就開始噴request了
note: 跑postmark前,最好先清空cache。參考網址
ps 每次設參數很煩 你就寫一個 .conf 檔,然後用 "load" 載入
note: 設定postmark file數時(e.g., set number)要確定沒超過 partition size,不然可能出現權限問題
4 等到噴完 用ctrl + c 終止 blktrace ,然後再同一個目錄下會出現很多log檔~
5 用 blkparse 去解碼,不然你是看不懂那一堆 log檔的
e.g., blkparse sdb4.blktrace* > pm64_128kbfile_32kbrec_5GB.dis.tmp
6 post-processing if needed.
像是後製成 disksim可以吃的格式。
---------
ref: http://www.cse.unsw.edu.au/~aaronc/iosched/doc/blktrace.html
2014年2月17日 星期一
web2 +mp3 結果圖 分析
1 原本paper上的圖有開work-conserving,要把他改成新圖。
而且只放 前100sec (也就是有灌滿的期間)
2 在該段期間內,QDI差異約6~7倍 (當然,承受較多的user受到干擾)
3 無GC , so no GCI
而且只放 前100sec (也就是有灌滿的期間)
2 在該段期間內,QDI差異約6~7倍 (當然,承受較多的user受到干擾)
3 無GC , so no GCI
2014年2月10日 星期一
install linux
====partition plan=========
/ : 30G SSD
/boot : 1G SSD
/tmp: 50GB HDD
/home : 300 HDD
swap : 2G SSD
tool: http://www.junauza.com/2012/04/best-disk-partition-managers-for-linux.html
choose best server
apt-get update
@ 套件管理需知 (建議先看,搞懂dkpg, apt, yum 等term...)
bison/flex/geany/gnuplot/htop/virtualbox/filezilla/terminator/inteltoolkit/postmark/chrome
pae
sudo apt-get install linux-generic-pae linux-headers-generic-pae
prompt color style
keyboard hot key
安裝insight
http://outsidenote.blogspot.tw/2013/03/install-insight-debugger-on-ubuntu.html
ref: http://sleepingwolf.pixnet.net/blog/post/19509749-%E3%80%90%E8%BD%89%E8%BC%89%E3%80%91%E5%AE%8C%E5%85%A8%E7%94%A8-linux-%E4%BE%86%E7%94%9F%E6%B4%BB
2014年1月28日 星期二
『筆記』disksim在超急速trace下跑很慢,如何去加速
『筆記』disksim在超急速trace下跑很慢,如何去加速
1 先用gprof去查可能的bottleneck function
2 以title為例,bottleneck都在處理queue(大多是 insert,get或是delete )
3. 本次發現 logorg_addnewtooutstandq()是bottleneck。原因是裡面有個while loop的功能只為了找到某linked list的tail。解法是: 『維護一個pointer永遠指向outstandq的tail』。注意: outstandq有很多個(也就是有很多條linked lists)。
4. 注意: tail pointer指向的東西(假設是temp)可能會被移除,所以temp被移掉
時最好是將tail-pointer更新成 temp->prev,不然下次addnewtooutstandq時如果發現tail-pointer還是null,就必需重找…(就沒加速到了啦)
5. ps: gprof只有當程式全部跑完才會產生 gmon.out
1 先用gprof去查可能的bottleneck function
2 以title為例,bottleneck都在處理queue(大多是 insert,get或是delete )
3. 本次發現 logorg_addnewtooutstandq()是bottleneck。原因是裡面有個while loop的功能只為了找到某linked list的tail。解法是: 『維護一個pointer永遠指向outstandq的tail』。注意: outstandq有很多個(也就是有很多條linked lists)。
4. 注意: tail pointer指向的東西(假設是temp)可能會被移除,所以temp被移掉
時最好是將tail-pointer更新成 temp->prev,不然下次addnewtooutstandq時如果發現tail-pointer還是null,就必需重找…(就沒加速到了啦)
5. ps: gprof只有當程式全部跑完才會產生 gmon.out
2014年1月12日 星期日
2013年12月27日 星期五
Improving NAND Endurance by Dynamic Program and Erase Scaling
paper sharing:
title: Improving NAND Endurance by Dynamic Program and Erase Scaling
where: HotStorage13
------------------------------ ------------------------------ ------------------
1. flash的endurance和program時用的電壓有關 ~ (電壓越大~命越短)
2. 承上,所以program speed和endurance就是一個tradeoff囉。( 電壓越大寫越快)
3 他就弄了一個FTL叫 DPES-FTL (dynamic program and erase scaling (DPES)),希望可以提高endurance而又不要害到w rite speed太多
how ?
→ 兩個write req之間的idle time時用小電壓
如何知道會有idle time?
→ by estimation
contributions
1. endurance-programSpeed model
2. DEPS-FTL
title: Improving NAND Endurance by Dynamic Program and Erase Scaling
where: HotStorage13
------------------------------
1. flash的endurance和program時用的電壓有關
2. 承上,所以program speed和endurance就是一個tradeoff囉。(
3 他就弄了一個FTL叫 DPES-FTL (dynamic program and erase scaling (DPES)),希望可以提高endurance而又不要害到w
how ?
→ 兩個write req之間的idle time時用小電壓
如何知道會有idle time?
→ by estimation
contributions
1. endurance-programSpeed model
2. DEPS-FTL
2013年12月25日 星期三
Program Interference in MLC NAND
Program Interference in MLC NAND Flash Memory: Characterization, Modeling, and Mitigation' ICCD13
http://users.ece.cmu.edu/ ~omutlu/pub/ flash-programming-interference_ iccd13.pdf
建一個model,讓你知道在什麼情況下會發生 program interference
情況包含: 1 program location
2 program order
3 current P/E cycle
準度有96%呢~~好強喔~~~
然後呢,要幹麻?
→ 用途1,你可以把這個model掛上disksim,就可以做這 方面的實驗了。
那他拿來幹麻?
→ 他用他預測的model,來做偷調電壓的動作 (我沒看很仔細)
例如: 某個cell讀出來 10V,他查一下model認定該cell原本應該是8V
是被干擾才變成10V,所以就扣減2V
好處?
→ 如果真的被他猜對,原本可能要ECC幫忙的,就省起來了~
省起來又怎樣? ECC不是電路在作嗎?
→ ECC發現error會在correct完後"再寫回",所以如 果可以把不用correct
就可以省寫很多pages啦~
http://users.ece.cmu.edu/
建一個model,讓你知道在什麼情況下會發生 program interference
情況包含: 1 program location
2 program order
3 current P/E cycle
準度有96%呢~~好強喔~~~
然後呢,要幹麻?
→ 用途1,你可以把這個model掛上disksim,就可以做這
那他拿來幹麻?
→ 他用他預測的model,來做偷調電壓的動作 (我沒看很仔細)
例如: 某個cell讀出來 10V,他查一下model認定該cell原本應該是8V
是被干擾才變成10V,所以就扣減2V
好處?
→ 如果真的被他猜對,原本可能要ECC幫忙的,就省起來了~
省起來又怎樣? ECC不是電路在作嗎?
→ ECC發現error會在correct完後"再寫回",所以如
就可以省寫很多pages啦~
訂閱:
文章 (Atom)