AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 773609
Accepted
Buzut
Buzut
Asked: 2016-04-29 06:38:25 +0800 CST2016-04-29 06:38:25 +0800 CST 2016-04-29 06:38:25 +0800 CST

Como as configurações do ulimit afetam o Linux?

  • 772

Ultimamente, tive um EAGAINerro com algum código assíncrono que me fez dar uma olhada nas ulimitconfigurações. Embora eu entenda claramente certos limites, como nofile, outros ainda são bastante confusos para mim.

É muito fácil encontrar recursos sobre como configurá-los, mas não consegui encontrar nenhum artigo explicando exatamente do que se trata cada configuração e como isso pode afetar o sistema.

Definição retirada /etc/security/limits.confnão é realmente auto-explicativa:

- core - limits the core file size (KB)
- data - max data size (KB)
- fsize - maximum filesize (KB)
- memlock - max locked-in-memory address space (KB)
- nofile - max number of open files
- rss - max resident set size (KB)
- stack - max stack size (KB)
- cpu - max CPU time (MIN)
- nproc - max number of processes
- as - address space limit (KB)
- maxlogins - max number of logins for this user
- maxsyslogins - max number of logins on the system
- priority - the priority to run user process with
- locks - max number of file locks the user can hold
- sigpending - max number of pending signals
- msgqueue - max memory used by POSIX message queues (bytes)
- nice - max nice priority allowed to raise to values: [-20, 19]
- rtprio - max realtime priority
- chroot - change root to directory (Debian-specific)

Então, eu ficaria feliz se alguém pudesse me esclarecer sobre essas configurações importantes do Linux!

O erro que enfrento é realmente:

{ [Error: spawn mediainfo EAGAIN]
  code: 'EAGAIN',
  errno: 'EAGAIN',
  syscall: 'spawn mediainfo',
  path: 'mediainfo',
  spawnargs: 
   [ '--Output=XML',
     '/home/buzut/testMedia' ],
  cmd: 'mediainfo --Output=XML /home/buzut/testMedia' }

De acordo com a definição em gnu.org :

Uma operação que bloquearia foi tentada em um objeto que tem o modo sem bloqueio selecionado. Tentar a mesma operação novamente bloqueará até que alguma condição externa torne possível ler, escrever ou conectar (qualquer que seja a operação).

Entendo que o EAGAINerro se refere a um recurso temporariamente indisponível. Não seria sensato definir todos os parâmetros como unlimited. Assim, eu entenderia a implicação de quais parâmetros identificar o bloqueio e ajustar - ulimitconfigurações, meu código ou ambos - de acordo.

Aqui estão meus limites atuais:

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 127698
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 64000
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 127698
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
linux ulimit
  • 2 2 respostas
  • 24822 Views

2 respostas

  • Voted
  1. Best Answer
    Buzut
    2016-04-29T13:42:31+08:002016-04-29T13:42:31+08:00

    Fiz minha lição de casa e (quase) descobri o que cada opção faz. Além disso, observei que há mais opções /etc/security/limits.confdo que aparecem com ulimit -a. Portanto, apenas documentei o último aqui. Claro, todos estão convidados a enriquecer esta resposta!

    • tamanho do arquivo principal (blocos, -c)

      O tamanho máximo dos arquivos principais criados. O dump principal é um instantâneo do sistema (RAM + chave de contexto + registros do processador).

      https://en.wikipedia.org/wiki/Core_dump


    • tamanho do segmento de dados (kbytes, -d)

      O tamanho máximo do segmento de dados de um processo. um segmento de dados é uma parte de um arquivo de objeto ou o espaço de endereço virtual correspondente de um programa que contém variáveis ​​estáticas inicializadas.

      https://en.wikipedia.org/wiki/Data_segment


    • prioridade de agendamento (-e)

      A prioridade máxima de escalonamento ("nice") que um processo pode receber.

      https://en.wikipedia.org/wiki/Scheduling_%28computing%29


    • tamanho do arquivo (blocos, -f)

      O tamanho máximo dos arquivos gravados pelo shell e seus filhos.


    • sinais pendentes (-i)

      Conjunto de sinais que estão pendentes para entrega ao thread de chamada.

      https://unix.stackexchange.com/questions/197600/what-are-pending-signals


    • memória máxima bloqueada (kbytes, -l)

      O tamanho máximo que pode ser bloqueado na memória. O bloqueio de memória garante que a memória esteja sempre na RAM e nunca seja movida para o disco de troca.

      https://stackoverflow.com/questions/9818755/why-would-we-need-to-lock-a-processs-address-space-in-ram


    • tamanho máximo da memória (kbytes, -m)

      Quanta memória um processo tem atualmente na memória principal (RAM), em oposição a quanta memória virtual o processo tem no total.

      https://en.wikipedia.org/wiki/Resident_set_size


    • arquivos abertos (-n)

      O número máximo de descritores de arquivos abertos. Um descritor de arquivo é um indicador abstrato usado para acessar um arquivo ou outro recurso de entrada/saída, como um canal ou soquete de rede.

      https://en.wikipedia.org/wiki/File_descriptor

      Descritores de arquivo de lista: http://www.cyberciti.biz/tips/linux-procfs-file-descriptors.html


    • tamanho do tubo (512 bytes, -p)

      Tamanho do buffer interno do tubo. Consulte a seção "capacidade do tubo" em http://man7.org/linux/man-pages/man7/pipe.7.html


    • Filas de mensagens POSIX (bytes, -q)

      O número máximo de bytes em filas de mensagens POSIX. As filas de mensagens POSIX permitem que os processos troquem dados na forma de mensagens.

      http://linux.die.net/man/7/mq_overview

      Filas de mensagens em geral https://en.wikipedia.org/wiki/Message_queue


    • prioridade em tempo real (-r)

      A prioridade máxima de agendamento em tempo real. Um encadeamento de prioridade em tempo real nunca pode ser interrompido por interrupções do timer e é executado em uma prioridade mais alta do que qualquer outro encadeamento no sistema.

      https://stackoverflow.com/questions/1663993/what-is-the-realtime-setting-for-for-process-priority


    • tamanho da pilha (kbytes, -s)

      O tamanho máximo da pilha. O tamanho da pilha é uma região reservada da memória usada para armazenar a localização das chamadas de função para permitir que as instruções de retorno retornem ao local correto.

      https://en.wikipedia.org/wiki/Stack-based_memory_allocation


    • tempo de CPU (segundos, -t)

      A quantidade máxima de tempo de CPU em segundos.

      https://en.wikipedia.org/wiki/CPU_time


    • máximo de processos de usuário (-u)

      O número máximo de processos que um usuário pode iniciar ou bifurcar.

      https://en.wikipedia.org/wiki/Process_%28computing%29

      Este comando mostra quantos processos cada usuário está usando atualmente:

      ps h -Led -o user | sort | uniq -c | sort -n


    • memória virtual (kbytes, -v)

      A quantidade máxima de memória virtual disponível para o shell. A memória virtual mapeia os endereços de memória usados ​​por um programa, chamados de endereços virtuais, em endereços físicos na memória do computador.

      https://en.wikipedia.org/wiki/Virtual_memory


    • bloqueios de arquivo (-x)

      O bloqueio de arquivo é um mecanismo que restringe o acesso a um arquivo de computador, permitindo apenas um usuário ou processo de acesso em um momento específico.

      https://en.wikipedia.org/wiki/File_locking

    • 12
  2. Ali Ghasempour
    2016-04-29T06:44:21+08:002016-04-29T06:44:21+08:00

    Como você não mencionou qual é o seu problema exato com limitação no Linux, seria difícil corrigi-lo. Você usa ulimit -apara verificar todas as suas limitações no sistema operacional. Além disso, você pode alterar todas as limitações que possui (você pode diminuí-las, não aumentá-las, exceto que o root pode fazer qualquer coisa). Tente verificar man ulimitpara descobrir qual opção você precisa alterar.

    • 1

relate perguntas

  • Protegendo um novo servidor Ubuntu [fechado]

  • (Soft) RAID 6 no Ubuntu 7.10, devo migrar para 8.10?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve