Я использую ядро Linux 2.6.36 и вижу некоторые случайные ошибки.Такие вещи, как
ls: error while loading shared libraries: libpthread.so.0: cannot open shared object file: Error 23
Да, моя система не может последовательно выполнить команду 'ls'.: (
Я заметил несколько ошибок в моем выводе dmesg:
# dmesg | tail
[2808967.543203] EXT4-fs (sda3): re-mounted. Opts: (null)
[2837776.220605] xv[14450] general protection ip:7f20c20c6ac6 sp:7fff3641b368 error:0 in libpng14.so.14.4.0[7f20c20a9000+29000]
[4931344.685302] EXT4-fs (md16): re-mounted. Opts: (null)
[4982666.631444] VFS: file-max limit 1231582 reached
[4982666.764240] VFS: file-max limit 1231582 reached
[4982767.360574] VFS: file-max limit 1231582 reached
[4982901.904628] VFS: file-max limit 1231582 reached
[4982964.930556] VFS: file-max limit 1231582 reached
[4982966.352170] VFS: file-max limit 1231582 reached
[4982966.649195] top[31095]: segfault at 14 ip 00007fd6ace42700 sp 00007fff20746530 error 6 in libproc-3.2.8.so[7fd6ace3b000+e000]
Очевидно, что ошибки file-max выглядят подозрительно, будучи сгруппированными вместе и недавними.
# cat /proc/sys/fs/file-max
1231582
# cat /proc/sys/fs/file-nr
1231712 0 1231582
Это также выглядит немного странно для меня, но дело в том, что я не могу открыть 1,2 миллиона файлов в этой системе. Я единственный, кто использует его, и он не виден никому за пределами локальной сети.
# lsof | wc
16046 148253 1882901
# ps -ef | wc
574 6104 44260
Я видел документацию, в которой говорилось:
file-max & file-nr:
Ядро распределяет файловые дескрипторы динамически, но пока этого не происходит.освободите их снова.
Значение в file-max обозначает максимальное количество дескрипторов файлов, которое выделит ядро Linux.Если вы получаете много сообщений об ошибках по поводу исчерпания дескрипторов файлов, вы можете захотеть увеличитьэто ограничение.
Исторически три значения в file-nr обозначали количество выделенных файловых дескрипторов, количество выделенных, но неиспользуемых файловых дескрипторов и максимальное количество файловых дескрипторов. Linux 2.6 всегда повторяетВ качестве числа свободных файловых дескрипторов задается 0 - это не ошибка, это просто означает, что количество выделенных файловых дескрипторов точно соответствует количеству используемых файловых дескрипторов.
Попытки выделить больше файловых дескрипторов, чем файловых.-max сообщаются с помощью printk, ищите «VFS: достигнут максимальный размер файла».
Мое первое прочтение о том, что ядро в основном имеет утечку встроенного дескриптора файла, но я нахожув это очень трудно поверить.Это означало бы, что любую активную систему необходимо периодически перезагружать, чтобы освободить файловые дескрипторы.Как я уже сказал, я не могу поверить, что это будет правдой, поскольку для меня нормально, чтобы системы Linux работали месяцами (даже годами) одновременно.С другой стороны, я также не могу поверить, что в моей почти бездействующей системе открыто более миллиона файлов.
У кого-нибудь есть какие-либо идеи относительно исправлений или дальнейшей диагностики?Я мог бы, конечно, просто перезагрузить систему, но я не хочу, чтобы это повторялось каждые несколько недель.В качестве временной меры я закрыл Firefox, на который приходилось почти 2000 строк вывода lsof (!), Хотя у меня было открыто только одно окно, и теперь я могу снова запустить 'ls', но я сомневаюсь, что это исправитпроблема надолго.(редактировать: Упс, говорил слишком рано. К тому времени, как я закончил вводить этот вопрос, симптом был / вернулся)
Заранее спасибо за любую помощь.