在使用Linux/ubuntu执行任务时,出现如下报错:

这个报错的意思是资源不可用,在中间处可以看到有个报错“Cannotfork”,fork在Linux中是用于创建一个新进程,也就是创建子进程。在这里不能fork,且提示资源不可用,可以考虑是不是系统的open files达到上限,查看当前默认的open files:

系统默认的openfiles为1024,这个数量还是比较少的,需要调整open files数量。
1. 临时调整
1). -HSn 124000

2).ulimit-n 65535

#其中-S是soft软限制模式,-H指hard硬限制模式
#默认是软限制,如果只知道-n,那就会同时配置-SH
这样临时调整只会对当前terminal生效,当关闭terminal或者系统重启后,则会恢复原来的样子。
2. 永久调整
修改/etc/security/limits.conf

修改后查看:

max user processes对应的是noproc这个字段,修改noproc后,需要重启系统才能生效。
如果修改上面的文件还是不行,可以再修改/etc/security/limits.d/90-nproc.conf(如果没有这个文件可以自己创建)

除了上面两个文件可以修改外,还可以修改/etc/systemd/system.conf这个文件里的DefaultTasksMax数值。
先查看系统的任务数最大值:
systemctlshow --property DefaultTasksMax

修改/etc/systemd/system.conf:

然后执行systemctl daemon-reexec命令生效。
文章转载自小左的运维之路,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




