В (инообесцененной) файловой системе нормального Unix, включая UFS, это - разумное приближение для высказывания каждого файла или каталога, Вы создаете использование один inode. Наличие большого количества файлов в одном каталоге не изменяет это.
Обычные проблемы с подходом, который Вы описываете:
ls
сортировка, и расширение шарика оболочки), хотя обычно задолго до замедления файловой системы.Более современные файловые системы (ext3/4) используют B-дерево как структуры данных для хранения каталогов отсортированными как часть их дисковых данных. Я полагаю, что реализация UFS использует хеширование в оперативной памяти (на основе использования FreeBSD и документации, у меня нет большого прямого опыта с UFS на Linux), поскольку дисковый формат не использует хеши.
Это имеет некоторую хорошую информацию о UFS и ссылки: https://serverfault.com/questions/53416/max-total-files-in-a-directory-in-freebsd-6-ufs
Наиболее вероятный худший случай в какой-то момент, Вы испытаете значимое и когда-либо ухудшающееся замедление при доступе к тому каталогу. Когда это доберется до той точки, это будет утомительно для фиксации (на основе моего опыта со взрывом sendmail очереди).
Я поощряю Вас контролировать (и график) iowait время своей системы и узнавать iotop
и slabtop
если Вы уже не делаете.
Если возможно, я также предлагаю, чтобы Вы попробовали некоторые простые эксперименты ко времени создание 1 000 файлов в Вашем каталоге кэша и соответствовали этому в пустом каталоге.
Я наконец использую этот сценарий для разрешения компиляции:
export CONFIG_SHELL=/opt/freeware/bin/bash
export CONFIG_ENV_ARGS=/opt/freeware/bin/bash
export CC=cc
export CFLAGS="-qmaxmem=16384 -DSYSV -D_AIX -D_AIX32 -D_AIX41 -D_AIX43 -D_AIX51 -D_AIX52 -D_AIX53 -D_AIX61 -D_ALL_SOURCE -DFUNCPROTO=15 -O -I/opt/freeware/include"export CXX=xlC
export CXXFLAGS=$CFLAGS
export F77=xlf
export FFLAGS="-qmaxmem=16384 -O -I/opt/freeware/include"
export LD=ld
export LDFLAGS="-L/opt/freeware/lib64 -L/opt/freeware/lib -Wl,-blibpath:/opt/freeware/lib64:/opt/freeware/lib:/usr/lib:/lib:/opt/freeware/lib/mysql/mysql -Wl,-bmaxdata:0x80000000"
export PATH=/usr/bin:/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:/usr/vac/bin:/usr/vacpp/bin:/usr/ccs/bin:/usr/dt/bin:/usr/opt/perl5/bin:/opt/freeware/bin:/opt/freeware/sbin:/usr/local/bin:/usr/lib/instl
make clean
./configure
--with-modules=mod_tls:mod_sql:mod_sql_mysql:mod_sql_passwd:mod_sftp:mod_sftp_sql
--without-getopt
--enable-openssl
--with-includes=/home/padubois/include3_mysql/zlib/:/home/padubois/include_mysql/mysql/
--with-libraries=/opt/freeware/lib/mysql/mysql:/opt/freeware/lib/mysql/mysql/libmysqlclient.a
--prefix=/local/proftpd/
make
Я неправильно использовал LDFLAG
вот важная часть:
-blibpath:/opt/freeware/lib64:/opt/freeware/lib:/usr/lib:/lib:/opt/freeware/lib/mysql/mysql
С Новым годом!
Отредактируйте 2, я вижу другую строку, это странно:
--with-includes=[...]/opt/freeware/lib/mysql/mysql
Не был должен это быть /opt/freeware/include/mysql/mysql
вместо этого?
Также Вы не добавили /opt/freeware/lib/mysql/mysql
к LDFLAGS при компиляции.
Редактирование я вижу одну вещь, которая могла бы объяснить это:
/opt/freeware/lib/mysql/mysql//libmysqlclient.a(libmysqlclient.so.16)
Отметьте дополнительное /
там. Я ни в коем случае не эксперт в xl, но он мог бы возможно запутываться этим при использовании той же нотации при компиляции в обоих компиляторах.
(Исходный ответ: От моей неопределенной памяти AIX я полагаю, что Вы хотите добавить путь к переменной среды LIBPATH
. )