Вопрос Каковы максимально разрешенные файлы?


Является ли 1048577 предел открытых файлов в Ubuntu? Если я попробую следующий код, он будет работать.

Однако, если я изменил значение на 1048578, функция setrlimit вернет код 1, а errno будет также установлен на 1.

int l;
struct rlimit rl;

rl.rlim_cur = 1048577;
rl.rlim_max = 1048577;

l = setrlimit(RLIMIT_NOFILE, &rl);

if(l != 0){
    errx(1, "setrlimit returned result %d", errno);
}

Я запускаю его как root и компилирую с помощью GCC 4.6.3


4
2018-03-02 09:00


происхождения




ответы:


Вы поразили максимум ядра (NR_OPEN), см.

cat /proc/sys/fs/nr_open

3
2018-03-02 11:01



Итак, если я изменил этот файл и перезагрузился, у меня появился новый максимум? - Frederico Schardong
Я просто пробовал, и это не так просто. - Frederico Schardong
Я думаю, вам придется перекомпилировать ядро: (Можете ли вы рассказать мне, почему вам нужно иметь так много открытых файлов для каждого процесса? - arrange
Это то, как работает мое приложение, я меняю его на максимум 65536 файлов или, возможно, меньше. Насколько я тестировал 65536, все в порядке. - Frederico Schardong