1

Я использую Red Hat Enterprise Linux Server версии 5.7 (Tikanga).

Когда я изменяю LD_LIBRARY_PATH, система становится очень медленной для каждой команды (кроме встроенных командных оболочек, таких как cd)

Например, ls в пустом каталоге занимает около 1 секунды. Когда я изменяю LD_LIBRARY_PATH обратно на значение по умолчанию, все выглядит нормально.

LD_LIBRARY_PATH, который я добавил, не особенно длинный (10-11 каталогов.)

Я пытался установить LD_DEBUG = all, но не смог найти ничего подозрительного.

Я проверил все FS, которые я добавил в PATH, имеют нормальную производительность.

Пожалуйста, скажите мне, что еще я должен проверить и что может быть причиной замедления.

2 ответа2

1

LD_LIBRARY_PATH может использоваться для переопределения вещей. Таким образом, когда любому исполняемому файлу (например, ls) нужно что-то общее, например, libc, ему придется сканировать все папки из env. переменная, прежде чем она сможет выглядеть в "нормальных" местах. Я считаю, что с помощью ldconfig система способна кешировать список библиотек для быстрого поиска. С переменной env он должен каждый раз пересматривать (переменная может измениться).

Кажется, что общее количество сканируемых файлов, возможно, довольно велико. Попробуйте синхронизировать все каталоги вместе.

0

Я обнаружил, что проблема, одна NFS, которая была в LD_LIBRARY_PATH, иногда не вела себя хорошо. Таким образом, поиск по единственному каталогу занял 0,01 секунды, что складывалось для каждой библиотеки и пути.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .