Python и отображение памяти? - PullRequest
0 голосов
/ 04 марта 2011

При использовании компьютера с Linux, сколько файлов можно создать с помощью python (какой предел)?Спасибо.

Ответы [ 2 ]

4 голосов
/ 04 марта 2011

В игре несколько ограничений.Первый - общесистемный лимит открытых файлов, /proc/sys/fs/nr_open.Обычно это диапазон миллионов.

Этот предел может продолжать учитываться для процессов, которые открывают файл, настраивают сопоставление, а затем снова закрывают файл.

Второй - этоза процесс getrlimit(2) RLIMIT_NOFILE за процесс число открытых файлов.Этот предел обычно находится в диапазоне 1024.

Этот предел, по-видимому, находится на самом высоком файловом дескрипторе, который будет выделен процессу, поэтому он, вероятно, не будет продолжать считатьсядля процессов, открывающих файл, настройте сопоставление, а затем снова закройте файл.

Третий - это объем адресного пространства, доступного для процесса (getrlimit(2) RLIMIT_AS и зависит от архитектуры (2, 3 или, может быть, 4 гигабайта (с исправлением адресного пространства 4: 4) на 32-битной или много много гигабайт на 64-битной). 3 гигабайта типично для x86 и из-за расположения адресного пространствапроблем, у вас, вероятно, будет 2,5 гигабайта для mmap.

Умное использование fork(2) может позволить вам настроить один процесс для каждого сопоставленного файла и иметь гигабайты на гигабайтах, отображаемых одновременно, даже на 32-битныхпроцессоров, но число процессов getrlimit(2) RLIMIT_NPROC на пользователя может ограничивать максимальное количество открытых процессов и, следовательно, файлов.

1 голос
/ 04 марта 2011

Это полностью зависит от системы.

Это ограничение не будет устанавливаться Python, скорее оно будет зависеть от настроек вашей ОС и объема доступной памяти. Кроме того, ваша система может наложить ограничение mmap для каждого процесса, которое вы можете проверить на /proc/sys/vm/max_map_count.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...