Aix
AIX 5.3 管道大小有任何限制嗎?
在 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