AIX 5.3 管道大小有限制吗?

AIX 5.3 管道大小有限制吗?

我在 Aix 5.3 上对大型文件执行 cat/tail/head 操作时遇到了麻烦。当要求将几个 1Go 文件重定向到另一个文件时:

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

答案1

您说您使用的是 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 位版本。

伊万

相关内容