我的 vmware 上建议的最大打开文件描述符数是多少(当前为 1024)?

我的 vmware 上建议的最大打开文件描述符数是多少(当前为 1024)?
*-core 
description: Motherboard

product: 440BX Desktop Reference Platform 
vendor: Intel Corporation 
physical id: 0 
version: None 
serial: None 
*-firmware 
description: BIOS 
physical id: 0 
version: 6.00 
date: 04/14/2014 
size: 87KiB 
capabilities: isa pci pcmcia pnp apm upgrade shadowing escd cdboot bootselect edd int5printscreen int9keyboard int14serial int17printer int10video acpi smartbattery biosbootspecification netboot 

*-cpu:0 
description: CPU 
product: Intel(R) Xeon(R) CPU E5-2697 v3 @ 2.60GHz 
vendor: Intel Corp. 
physical id: 4 
bus info: cpu@0 
version: Intel(R) Xeon(R) CPU E5-2697 v3 @ 2.60GHz 
slot: CPU socket #0 
size: 2600MHz 
capacity: 4230MHz 
width: 64 bits



The current limits are : 
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited 
file size (blocks, -f) unlimited 
max locked memory (kbytes, -l) unlimited 
max memory size (kbytes, -m) unlimited 
open files (-n) 1024 
pipe size (512 bytes, -p) 1 
stack size (kbytes, -s) 8192 
cpu time (seconds, -t) unlimited 
max user processes (-u) 1418 
virtual memory (kbytes, -v) unlimited 


$ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                8
On-line CPU(s) list:   0-7
Thread(s) per core:    1
Core(s) per socket:    4
Socket(s):             2
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 63
Model name:            Intel(R) Xeon(R) CPU E5-2697 v3 @ 2.60GHz
Stepping:              2
CPU MHz:               2593.993
BogoMIPS:              5187.98
Hypervisor vendor:     VMware
Virtualization type:   full
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              35840K
NUMA node0 CPU(s):     0-7

答案1

这与您的 CPU 无关。它是您可以拥有的打开文件描述符数量的设置。可以使用 显示ulimit -n。每个进程的默认值为 1024。

用户可以拥有的最大限制可以在 中设置/etc/security/limits.conf

可以使用命令查看当前配置的系统最大值

$ cat /proc/sys/fs/file-max
601126

该值是系统总数,而不是每个进程的值。

这可以通过将新值写入同一位置来更改,例如echo 1000000 | sudo tee /proc/sys/fs/file-max。这是上限。

使用中的值显示在 中/proc/sys/fs/file-nr,它有三个数字。第一个是当前正在使用的文件描述符,第二个是已分配但空闲的描述符,第三个是系统配置的最大值。

每个进程的 uliit 可以由用户更改,最大可达以下描述的值/etc/security/limits.conf

[~]$ ulimit -n
1024
[~]$ ulimit -n 2048
[~]$ ulimit -n
2048

此外,您有两种限制。硬限制和软限制。您可以使用软限制,但只有 root 可以提高硬限制。要显示硬限制,请运行ulimit -H -n。用户可以降低硬性限制,但绝不会提高它们,即使降低也回到初始值。

[~]$ ulimit -H -n
4096
[~]$ ulimit -H -n 2048
[~]$ ulimit -H -n 4096
bash: ulimit: open files: cannot modify limit: Operation not permitted
[~]$ 

如果你对限制还有疑问,我建议你问一个更具体的问题,因为这个问题比较开放。没有受到推崇的值;不同的过程需要不同的方法。默认值对于大多数应用程序来说都是合理的,而有些应用程序可能会遇到问题。

简短的回答是,除非遇到问题,否则不必担心。

相关内容