Basic Member
加入日期: Feb 2003
文章: 23
|
引用:
以下提供寫入放大的解決方法,已徵得該文作者同意轉載分享到PCDVD 該文章網址出處如下 https://fonwin.blogspot.tw/2016/04/...-535-10-15.html 如果 0.5秒就去讀取一下 SSD, 就能避免大量 Total NAND Writes(F9) 後面是驗證程式,自行編成exe之後,放到系統啟動時自動執行。 此程式僅會增加 SSD 1KB/sec 的讀取,對系統影響非常小。 希望 Intel 能提供韌體徹底解決。 先解決 wfpdiag.etl 頻繁寫入的問題: netsh wfp set options netevents = off 如果可以, 把 swap file 移到傳統 HDD 其他SSD優化設定...自行 google... 底下是驗證結果: SMART: Total NAND Writes(F9), Total LBAs Read(F2), Written(F1) 2016/4/13-16:00 749G(F9) 83.75G(F2) 76.09G(F1) 2016/4/18-20:47 781G 141.84G 96.59G 5天增加 32G 58.09G 20.5G 這5天的寫入放大僅1.5, 執行此程式之前竟然會接近10 ?! #include <Windows.h> #include <stdio.h> #include <stdlib.h> int main(int argc, char** argv) { int sleepms = 500; if(argc > 1) sleepms = atoi(argv[1]); printf("SSD read interval: %d ms\n", sleepms); DWORD DesiredAccess = GENERIC_READ|GENERIC_WRITE; DWORD ShareMode = FILE_SHARE_READ; DWORD CreationDistribution = OPEN_ALWAYS; DWORD FlagsAndAttributes = FILE_ATTRIBUTE_NORMAL | FILE_FLAG_NO_BUFFERING; HANDLE FD_ = CreateFileA("./dummy", DesiredAccess, ShareMode, NULL, CreationDistribution, FlagsAndAttributes, 0); DWORD rsz = 0, wsz = 0; char buf[1024] = { 0 }; if(::GetFileSize(FD_, NULL) < sizeof(buf)) WriteFile(FD_, buf, sizeof(buf), &wsz, 0); __int64 tms = 0; __int64 totalrx = 0; for(;;) { SetFilePointer(FD_, 0, 0, FILE_BEGIN); ReadFile(FD_, buf, 512, &rsz, 0); if(rsz == 0) printf("[fd=%p, r=%d,w=%d]", FD_, rsz, wsz); totalrx += rsz; SleepEx(sleepms, TRUE); if((tms += sleepms) % (1000*10) == 0) { __int64 secs = tms / 1000; printf("\r[Spent time: %lld:%02d:%02d][Read %lld bytes]" , secs/60/60, (int)(secs/60)%60, (int)(secs%60) , totalrx); } } CloseHandle(FD_); return 0; } |
||||||||
2016-05-20, 09:28 PM
#181
|
Power Member
加入日期: Nov 2001 您的住址: 力行三號
文章: 613
|
引用:
[恕刪] 感謝分享, 看起來也排除了Buffer 假性寫入的影響, 有53X 系列的站友可以試試看喔, 因為Intel 已經公開說不會處理這個放大率問題了 https://communities.intel.com/threa...rt=105&tstart=0
__________________
我不希望看到PCDVD變成一言堂 原來壞人清單是這麼用的 , 感謝站友提醒 創造論點? 演化論點? 舉例來說, 我可不認為教徒與達爾文信徒間,在彼此都沒有100% 的證據前,動不動就要單挑對方,輸的吃XXX. 如果可以先自己設計一個科學實驗, 證明90%的人都聽不出差別時,而且通過測謊與腦波測試.也許有站友會考慮自己是不是要不要實事求是證明自己是那少數的10% |
|||
2016-05-21, 07:28 PM
#182
|
Regular Member
加入日期: Nov 2006
文章: 93
|
引用:
MS那討論串中有人提供跟上面網友類似的東西 或者該說是一樣的東西,因為原理是相同的 昨天試了一下,效果非常顯著 原本正常使用甚至是待機下,每小時都會增加4~6GB寫入 昨天跑了約六小時,卻只增加約1GB寫入 |
|
2016-05-23, 07:04 PM
#183
|
Major Member
加入日期: Oct 2008
文章: 134
|
引用:
請問要如何將驗證程式編成exe? |
|
2016-05-23, 07:33 PM
#184
|
Regular Member
加入日期: Nov 2006
文章: 93
|
引用:
我是下載ms討論區裡的 它已經編譯好,是用服務的方式執行的 https://github.com/deadbabe/diskpoll 至於要怎麼編,那看起來好像是C語言寫的,不確定 是的話,要用C的編譯器去跑 |
|
2016-05-23, 08:14 PM
#185
|
Basic Member
加入日期: Feb 2005
文章: 27
|
引用:
上個月拿到一台配 Intel 530 的筆電就發現寫入放大超過 12 倍!就自己 Compile 前面提到的C code! 測試降到5-6倍,不像文章說的 1.xx;感覺還是怪怪的!現在有 compile 好的再試試看! 另外剛發現竟然4K沒對齊,難怪每天寫入好幾G,先解決再試! |
|
2016-05-23, 08:53 PM
#186
|
Regular Member
加入日期: Nov 2006
文章: 93
|
唉啊,突然發現我上面兩篇發文都錯了同一個地方
是INTEL討論串,不是MS討論串...... 此文章於 2016-05-23 09:32 PM 被 calor 編輯. |
2016-05-23, 09:29 PM
#187
|
Master Member
加入日期: Jun 2002
文章: 2,332
|
引用:
Intel也真的很奇怪,不解決這issue好歹也給個解釋.... 如果是因為製程導致PE過低,得頻繁在背後偷做平均磨寫 來延長壽命那只要講出來不就好了? 現在都不表示然後讓 大家土法煉鋼解決問題,到時候因為這樣導致一堆53x SSD 都RMA送修Intel不是更麻煩? 明顯就搬石頭砸自己腳Orz
__________________
Es muss sein! |
|
2016-05-23, 11:25 PM
#188
|
Amateur Member
加入日期: Mar 2013
文章: 38
|
引用:
Intel 有解釋阿, 前面爬文就知道了. |
|
2016-05-24, 08:41 AM
#189
|
Regular Member
加入日期: Nov 2006
文章: 93
|
推一下舊文
關於intel 53X 系列寫入放大異常 官方終於釋出修正檔了 https://downloadcenter.intel.com/do...-530-535-Series 有興趣的可以試試 |
2016-12-17, 10:31 PM
#190
|