Есть ли ограничение на размер трубы в AIX 5.3?

У меня проблемы с выполнением операций cat / tail / head над большими файлами в Aix 5.3. При запросе кота из нескольких файлов 1Go перенаправляется на другой:

cat file1 file2 file3 > outputfile

Выходной файл ограничен 2Go (cat: ошибка вывода и файл результата составляет 2147483647 байт)

Файловая система - jfs2. Я успешно загрузил файлы ftp 10Go в файловую систему без проблем.

Я не нашел ничего релевантного в etc/security/limit:

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/limit на сервере без проблем:

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 поддерживают файлы размером более 2 ГБ, поэтому я думаю, что наиболее вероятными являются значения 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.

Наконец, вы можете проверить, что вы используете 64-битное ядро, а не 32-битное, выполнив следующую команду от имени root:

bootinfo -K

Это прописная буква K там. Если он возвращает 32, то вам следует перейти на 64-битную.

Ewan

Другие вопросы по тегам