| 1 | = 2012-06-02 = |
| 2 | |
| 3 | == File System & Kernel Page Size == |
| 4 | |
| 5 | * 前陣子大家在討論怎樣加速異地檔案傳輸的速度,Thomas 提到說 mount 指令不支援大於 4096 (4K) 的問>題,也提到這個現象受限於 CPU 架構,因為 Kernel Page Size 是相依於 CPU 架構。今天簡單地查了一下,>把這個問題紀錄一下,畢竟我們常要去探討 Disk I/O 速度,從硬體架構跟軟體架構的堆疊來看,最終還是得>設法找出最佳化的參數。唯有對問題更了解,才又辦法知道如何把速度榨出來~ |
| 6 | * [參考一] [http://mkl-note.blogspot.tw/2010/11/mount-xfs-64kb-block-size-cause.html mount XFS 64KB block size cause "Function not implemented"] |
| 7 | {{{ |
| 8 | #!html |
| 9 | <p><b>XFS: A high-performance journaling filesystem</b></p> |
| 10 | <a href='http://oss.sgi.com/projects/xfs/'>http://oss.sgi.com/projects/xfs/</a><p/> |
| 11 | <b>Filesystem Block Size</b><p/> |
| 12 | <u>The minimum filesystem block size is 512 bytes. <b>The maximum filesystem block size is the page size of the kernel</b>, which is 4K on x86 architecture and is set as a kernel compile option on the IA64 architecture (up to 64 kilobyte pages).</u> So, XFS supports filesystem block sizes up to 64 kilobytes (from 512 bytes, in powers of 2), when the kernel page size allows it. |
| 13 | }}} |
| 14 | * [參考二] [http://superuser.com/questions/291228/mount-ext4-partition-with-4kib-block-size Mount ext4 partition with >4KiB block size] |
| 15 | {{{ |
| 16 | #!text |
| 17 | From page_types.h under arch\x86\include\asm |
| 18 | |
| 19 | /* PAGE_SHIFT determines the page size */ |
| 20 | #define PAGE_SHIFT 12 |
| 21 | #define PAGE_SIZE (_AC(1,UL) << PAGE_SHIFT) |
| 22 | #define PAGE_MASK (~(PAGE_SIZE-1)) |
| 23 | }}} |
| 24 | {{{ |
| 25 | #!text |
| 26 | Here is a list of the archs that support 64KiB or greater page sizes: |
| 27 | ia64, mips, pa-risc, powerpc, sh, sparc64. So it looks like my best bet |
| 28 | it to find an old-PPC Mac. |
| 29 | }}} |
| 30 | * [參考三] [ |