Como o RHEL 5 (kernel 2.6.18 do Linux) determina a configuração padrão fs.file-max?

4

Se fs.file-max não estiver definido em /etc/sysctl.conf no RHEL 5 ou suas derivadas, como o kernel determinará o valor padrão? Existe uma fórmula usada para definir o valor fs.file-max com base na quantidade de RAM do sistema? Eu verifiquei um número de servidores RHEL aleatórios executando o mesmo nível de SO, mas com configurações de hardware diferentes, e cat /proc/sys/fs/file-max mostra valores diferentes em cada sistema.

    
por aaltonen 19.10.2010 / 03:02

1 resposta

3

Responderei a minha própria pergunta: o kernel do Linux 2.6 define o limite de arquivos abertos para 10% da memória disponível.

Fonte: link

 488 void __init files_init(unsigned long mempages)
 489 { 
 490         int n; 
 491 
 492         filp_cachep = kmem_cache_create("filp", sizeof(struct file), 0,
 493                         SLAB_HWCACHE_ALIGN | SLAB_PANIC, NULL);
 494 
 495         /*
 496          * One file with associated inode and dcache is very roughly 1K.
 497          * Per default don't use more than 10% of our memory for files. 
 498          */ 
 499 
 500         n = (mempages * (PAGE_SIZE / 1024)) / 10;
 501         files_stat.max_files = n; 
 502         if (files_stat.max_files < NR_FILE)
 503                 files_stat.max_files = NR_FILE;
 504         files_defer_init();
 505         lg_lock_init(files_lglock);
 506         percpu_counter_init(&nr_files, 0);
 507 } 
    
por 21.10.2010 / 15:48