Aix

AIX 5.3 管道大小有任何限制嗎?

  • June 4, 2011

在 Aix 5.3 上對大文件執行 cat/tail/head 操作時遇到了麻煩。當請求一個將多個 1Go 文件重定向到另一個的 cat 時:

cat file1 file2 file3 > outputfile

輸出文件限制為 2Go(cat:輸出錯誤和結果文件為 2147483647 字節)

文件系統是 jfs2。我通過文件系統上的 ftp 10Go 文件成功上傳,沒有問題。

我在 etc/security/limits 中沒有發現任何相關內容:

default:
fsize = -1
core = 2097151
cpu = -1
data = 262144
rss = 65536
stack = 65536
nofiles = 20000

ulimit -a

core file size (blocks)     unlimited
data seg size (kbytes)      245759
file size (blocks)          unlimited
max memory size (kbytes)    unlimited
open files                  2000
pipe size (512 bytes)       64
stack size (kbytes)         32768
cpu time (seconds)          unlimited
max user processes          2048
virtual memory (kbytes)     278527

該問題不會在另一台 AIX 5.3 伺服器上發生,我只是在尋找可能是問題根源的不同配置。

伺服器上的 /etc/security/limits 沒有問題:

default:
       fsize = -1
       core = 2097151
       cpu = -1
       data = 262144
       rss = 65536
       stack = 65536
       nofiles = 20000

ulimit -a 在伺服器上沒有問題:

core file size        (blocks, -c) 1048575
data seg size         (kbytes, -d) 131072
file size             (blocks, -f) unlimited
max memory size       (kbytes, -m) 32768
open files                    (-n) 20000
pipe size          (512 bytes, -p) 64
stack size            (kbytes, -s) 32768
cpu time             (seconds, -t) unlimited
max user processes            (-u) 262144
virtual memory        (kbytes, -v) unlimited

你說過你使用的是 ext2,但那是一個 Linux 文件系統。我假設您的意思是 JFS2?

JFS2 和 cat 都支持 >2GB 文件,所以我認為最有可能的是 ulimit 值 - 你已經輸入了 /etc/security/limit 的內容,但是如果你執行會發生什麼

ulimit -a

作為執行貓的人?

如果您實際上使用的是 JFS,而不是 JFS2,那麼您需要檢查文件系統是否啟用了大文件,

Enter smit fs.
Select Add/Change/Show/Delete File Systems.
Choose Journaled File Systems.
Select Change/Show Characteristics of a Journaled File System.
Choose the file system that you are using.
Scroll down until you get to Large File Enabled.

最後,您可以通過以 root 身份執行以下命令來檢查您執行的是 64 位核心,而不是 32 位核心:

bootinfo -K

那是一個大寫的K。如果它返回 32,那麼您應該切換到 64 位。

Ewan

引用自:https://serverfault.com/questions/182816