Зачем ограничивать количество открытых файлов и запущенных процессов в Linux?

Вероятно, ваша видеокарта недостаточно хороша для игры в эту игру, как указано этой ошибкой:

ERROR: Missing required OpenGL extensions: - GL_EXT_texture_compression_s3tc

Также возможно, что вы пренебрегли установкой проприетарные драйверы для вашей карты, если это Nvidia или ATI.

1
задан 14 November 2012 в 11:47

3 ответа

Есть ограничения для всего, как в жизни, так и в Linux. Иногда ограничения очень высоки и не стоит беспокоиться, а иногда они слишком низки, задаются произвольно ленивым программистом или устанавливаются ограничениями на аппаратное обеспечение.

Произвольные ограничения возникают, когда программист делает решение, такое как максимальное количество символов, разрешенных в поле, например адрес. Гораздо проще установить произвольный предел, чем динамически распределять память по мере необходимости. Вы не хотите выделять всю доступную память в простое поле ввода, но вы не хотите, чтобы входные данные могли перезаписывать другую память, которая также может быть важной. Для открытых файлов и процессов может быть произвольный предел, или он может быть ограничен доступной памятью. Если последнее, то плохие вещи начнут возникать по мере приближения к пределу, и система может висеть, поэтому часто бывает полезно иметь предел, который вступает в игру до того, как это произойдет. Иногда произвольные ограничения могут быть определены при запуске в зависимости от объема памяти или дискового пространства и обычно довольно интеллектуальны, но все же произвольны - кто-то решил, что производительность станет невыносимой или опасной, и установите ограничения, чтобы избежать этой ситуации.

Тогда существуют ограничения, установленные аппаратным обеспечением, такие как размер целого или символа. Если у вас есть 32-битная система, тогда существуют ограничения, заданные максимальным размером целого числа (4 294 967 295 если без знака, или половина, если они подписаны).

9
ответ дан 25 May 2018 в 04:30
  • 1
    Пределы, которые кажутся произвольными, могут фактически основываться на стандартах. Международные стандарты ограничивают почтовые адресные строки до 39 символов. Такой предел может быть произвольным. Предел в 60 символов для адреса, вероятно, будет произвольным. К сожалению, слишком мало программистов проверяют стандарты, поэтому многие (иногда правильные) лимиты произвольно решаются. – BillThor 12 November 2012 в 09:16
  • 2
    Согласен; когда я все еще работал программистом, я бы потратил много времени на поиск заявленных лимитов, как вы сказали, или определенный в ОС как макрос (например, max_path и т. д.). Но я должен сказать, что произвольные ограничения обычно лучше, чем никаких ограничений, особенно для длин полей. :) – Marty Fried 13 November 2012 в 04:12

Для процессов / proc / sys / kernel / pid_max является максимально допустимым pid, поэтому это жесткий предел количества процессов, которые могут выполняться в любой момент. Тем не менее, ограничения на память обычно вступают в игру задолго до этого.

Для верхнего предела открытых файлов на всей машине / proc / sys / fs / file-max является жестким пределом; это зависит от объема памяти в машине, поэтому она будет меняться. Ядро устанавливает это:

    n = (mempages * (PAGE_SIZE / 1024)) / 10;
    files_stat.max_files = max_t(unsigned long, n, NR_FILE);

, который составляет около 100 для каждого 1 МБ ОЗУ.

В разных пределах процесса разные. ulimit определит их.

7
ответ дан 25 May 2018 в 04:30

У нас есть предел, потому что у компьютеров есть ограничения, у меня 4 ГБ оперативной памяти, поэтому я не могу запустить 15 игр, теперь я могу?

Я, скорее всего, могу запустить его с некоторой задержкой, Это будет лимит на вашем ПК и Linux Kernal, вам понадобится лучшее ядро ​​и много оперативной памяти, чтобы иметь возможность держать любую программу, которая бросается на вас.

Как и мой ноутбук, когда я запускал Windows 7, я мог бы играть в Battlefield, но мне потребовалось 80% моей памяти, поэтому, если бы я попытался сыграть «Need For Speed», это займет 60%. Обычно я могу открыть оба, но тогда вся моя система замедляется, так как я работающие на двух тяжелых программах, они борются за ОЗУ (Random Access Memory)

Короче говоря, обычный компьютер не может запускать много программ одновременно Музыка, блокнот, браузер, электронная почта, игра, Вы думаете, что это много на компьютере, но это просто, игра, подобная World of Warcraft, требует много оперативной памяти и делает ваш компьютер борьбой (если у вас нет 8-16 ГБ оперативной памяти, как это делают дорогие ноутбуки!)

-5
ответ дан 25 May 2018 в 04:30
  • 1
    Благодарим за информацию о процессах, поскольку мы знаем, что при загрузке многих процессов будет выполняться большая загрузка процессора, а трафик на ядрах процессора будет настолько высок, чтобы обрабатывать его, и со временем ваша система будет висеть, временный отрезок к любому из процессов для выполнения, я думаю, если я не ошибаюсь. Но почему существует ограничение для открытых файлов в Linux? – aka_learner 11 November 2012 в 23:46
  • 2
    Я не знаю о пределе открытых файлов, я вообще этого не испытывал. Может быть, ваши компьютеры ограничены по сравнению с моими, я не уверен в этом. У меня всегда есть несколько 10 открытых файлов. Затем открывается веб-браузер, музыкальный проигрыватель и терминал. – Ubisoft Terzuz 11 November 2012 в 23:53
  • 3
    Как правило, это происходит со мной, когда моя база данных mysql дает мне следующее «120428 20:30:01 [ERROR] / usr / sbin / mysqld: Не удается открыть файл:« ./djlabo_open/cart_layout.frm »(errno: 24) & Quot; ошибка в журнале ошибок, потому что Linux не позволяет открыть этот файл базы данных. – aka_learner 12 November 2012 в 00:07
  • 4
    Вероятно, это что-то другое, чем ограничение ОС для открытых файлов. – Nanne 12 November 2012 в 00:40
  • 5
    @Terzuz Это действительно основано на том, считают ли люди ответы друг друга на самом деле правильными. Многие люди (включая меня, к сожалению) чувствуют, что этот ответ, возможно, действительно не затрагивает пределы, упомянутые в вопросе, но другие ограничения. – hexafraction 12 November 2012 в 03:03

Другие вопросы по тегам:

Похожие вопросы: