新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Linux 避免IO hang

        Linux 避免IO hang

        作者: 時間:2016-10-08 來源:網絡 收藏

        對于DB Server 來說,刪除大表來說是很棘手的。

        本文引用地址:http://www.104case.com/article/201610/305499.htm

        刪除大表的話,可以對原有表的.ibd文件建立硬鏈接。當多個文件名指向同一個Node時,刪除任何一個文件名都很快,因為直連的物理文件沒有刪除只是刪除了一個指針而已。當Node引用數為1的時候,刪除文件需要把文件相關的所有數據塊都刪除。

        具體參考:

        今天我們只討論,如果我們利用了以上方法建立了硬鏈接文件,那么刪除該大文件的時候,如何避免IO hang呢?

        答案是 coreutils 工具集中的 truncate 工具

        wget

        tar -zxvf coreutils-8.9.tar.gz

        cd coreutils-8.9

        ./configure

        make

        sudo cp src/truncate /usr/bin/

        truncate 收縮或擴展文件至指定大小

        語法: truncate option ... file ...

        如果文件不存在的話會被創建。

        如果一個文件的size比指定的size大,則該文件會被截斷丟是一部分數據,如果size比指定的小,那么他會0字節填充。

        option:

        -c

        --no-create 如果沒有該文件的話也不會創建

        -o

        --io-blocks 對于文件的size大小以I/O block來對待

        -r rfile

        --reference=file Base the size of each file on the size of rfile

        -s size

        --size=size 根據下面的選項,調整文件的大小

        ‘KB’ => 1000 (KiloBytes)

        ‘K’ => 1024 (KibiBytes)

        ‘MB’ => 1000*1000 (MegaBytes)

        ‘M’ => 1024*1024 (MebiBytes)

        ‘GB’ => 1000*1000*1000 (GigaBytes)

        ‘G’ => 1024*1024*1024 (GibiBytes)

        或者是 T P E Z這樣的單位

        根據下面的符號,根據他們本身的size來調整大小

        + 擴展

        - 縮小

        至多

        > 至少

        / 向下舍入的倍數

        % 向上的倍數

        簡單舉例:

        touch abc

        truncate -s +1KB abc

        truncate -s +1KB abc

        ll abc

        -rwxrwxrwx 1 root root



        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 肃宁县| 资溪县| 霸州市| 上杭县| 东海县| 彰化县| 西丰县| 自治县| 衡南县| 邵阳县| 临沧市| 微博| 宿迁市| 湘潭市| 涟源市| 全椒县| 抚州市| 柳河县| 祁连县| 天峨县| 松溪县| 钦州市| 绍兴市| 读书| 徐闻县| 乐陵市| 古交市| 大化| 金门县| 勐海县| 闵行区| 湄潭县| 乾安县| 神农架林区| 全椒县| 博白县| 惠州市| 呈贡县| 龙里县| 岫岩| 山阴县|