2014-02-06 55 views
3

對於每個文件,在每個文件上是否可以重複執行順序爲stat會導致緩衝區高速緩存或板對象驅逐舊條目和/或增加引起明顯性能差異的板(磁盤I/O除外)?例如,Linux的緩衝區緩存或slab處於加載了大部分活動對象的狀態。 '統計'磁盤上的文件(比如說所有這些文件)會將inode和dentry對象放在緩存中。因爲他們人數衆多,我認爲他們可能會驅逐較舊的條目並填充緩存。完成此操作後,當相應的應用程序訪問它時,舊的條目將被從磁盤重新加載。由於實際刷新高速緩存,是否可以「統計」大量文件導致性能影響?

我的問題是這樣的stat ing例如重複du在大量文件上的使用對系統有明顯影響嗎?這取決於緩存的大小,據我瞭解,我的主要目標是瞭解大量文件的重複'du'是否會顯着影響系統的性能。同時指出是否可以看到任何其他間接影響。

回答

1

恕我直言,這取決於緩存替換政策。如果是FIFO,那麼是的 - du ing會用較新的條目替換較舊的條目。但是,如果它是更常見的LRU,那麼我認爲這不太可能發生 - 我(希望)相信文件上的I/O對於LRU時間/參考計數具有更高的優先級,然後是stat ing。或者,也許這些緩存是完全分離的。無論如何,強烈推薦一些深思熟慮的內核源代碼閱讀。

相關問題