新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 如何讓linux服務器磁盤io性能翻倍

        如何讓linux服務器磁盤io性能翻倍

        作者: 時間:2016-09-12 來源:網絡 收藏

        假設一個網頁上有10張圖片,這10張圖片雖然存在10個文件中,但其實是幾乎同時被用戶訪問的。

        如果能讓這10張圖片存儲在連續的磁盤空間中,就能把io性能提升10倍(一次尋道就可以讀10個文件了)

        傳統的做法是通過拼接圖片來將這10張圖片合并到一張大圖中,再由前端將大圖切成10張小圖。

        有了e4defrag后,可以將需連續訪問的文件放在同一個文件夾下,再定期使用e4defrag進行磁盤整理。

        實現自己的文件系統

        我們曾經寫過一款專用文件系統,針對代理,將磁盤io性能提升到3-5倍。

        在大部分上,不需要支持“修改文件”這個功能。一旦文件創建好,就不能再做修改操作,只支持讀取和刪除。在這個前提下,我們可以消滅所有文件碎片,把磁盤io效率提升到理論極限。

        在我們中,每個文件的緩沖區最大值設定為16MB

        小于16MB的文件,在服務器準備好整個文件內容后,再創建文件。創建文件時服務器給出文件大小,文件系統保證為文件分配連續的空間。

        讀寫文件時,服務器一次性讀寫整個文件。

        大于16MB的文件,服務器創建文件時告訴文件系統分配16MB磁盤空間。后續每次擴大文件大小時,要么是16MB,要么就是文件終結。不允許在文件未終結的情況下分配非16MB的空間。

        讀寫文件時,每次讀寫16MB或者直到文件末尾。

        在我們的文件系統中,小文件完全無碎片,一次尋道就能搞定一個文件,達到了理論上最佳的性能。

        大文件每次磁頭定位讀寫16MB,性能沒有達到100%,但已經相當好了。

        有一個公式可以衡量磁盤io的效率:

        磁盤利用率 = 傳輸時間/(平均尋道時間+傳輸時間)

        對我們當時采用的磁盤來說(1T 7200轉sata),16MB連續讀寫已經可以達到98%以上的磁盤利用率。


        上一頁 1 2 下一頁

        關鍵詞: linux 服務器

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 买车| 巴塘县| 叶城县| 勃利县| 红河县| 沽源县| 东海县| 永顺县| 韶山市| 大方县| 永登县| 渝北区| 泽库县| 从江县| 郧西县| 三门县| 北宁市| 镇康县| 光山县| 东阿县| 伽师县| 南昌市| 西贡区| 湖北省| 板桥市| 寿宁县| 井研县| 高邑县| 清流县| 博罗县| 泸州市| 榆林市| 金昌市| 门源| 页游| 佛教| 辽中县| 溧水县| 阿鲁科尔沁旗| 什邡市| 梅州市|