打开的文件太多错误!安装很多插件后无法打开 Jenkins

Too many open files error! Can't open Jenkins after installing many plugins

我搜索了之前的帖子,但没有解决我的问题。我正在使用 Ubuntu.

问题是这样的:

错误java.nio.file.FileSystemException:/var/lib/jenkins/config。xml:

打开的文件太多

sun.nio.fs.UnixException.translateToIOException(UnixException.java:103) 在 sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:114) 在 sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:119) 在sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:226) 在 java.nio.file.Files.newByteChannel(Files.java:372) 在 java.nio.file.Files.newByteChannel(Files.java:418) 在 java.nio.file.spi.FileSystemProvider.newInputStream (FileSystemProvider.java:395) 在 java.nio.file.Files.newInputStream(Files.java:163) 在 hudson.XmlFile.unmarshal(XmlFile.java:158) 在 jenkins.model.Jenkins.loadConfig(Jenkins.java:3078) 在 jenkins.model.Jenkins.access$1200(Jenkins.java:307) 在 jenkins.model.Jenkins$16.run(Jenkins.java:3096) 在 org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:169) 在 org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:282) 在 jenkins.model.Jenkins$7.runTask(Jenkins.java:1090) 在 org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:210) 在 org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1153) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) 在 java.lang.Thread.run(Thread.java:785)

导致:org.jvnet.hudson.reactor.Reactor异常 org.jvnet.hudson.reactor.Reactor.execute(Reactor.java:269) 在 jenkins.InitReactorRunner.run(InitReactorRunner.java:47) 在 jenkins.model.Jenkins.executeReactor(Jenkins.java:1124) 在 jenkins.model.Jenkins.(Jenkins.java:929) 在 hudson.model.Hudson.(Hudson.java:86) 在 hudson.model.Hudson .(Hudson.java:82) 在 hudson.WebAppMain$3.run(WebAppMain.java:235)

原因:hudson.util.HudsonFailedToLoad 在 hudson.WebAppMain$3.run(WebAppMain.java:252)

当您安装 Jenkins 时,它会创建一个默认的 jenkins 用户。请注意,您在 Jenkins 上执行的每项操作都与 "Jenkins" 用户相关联。在 Ubuntu(你告诉你的 OS 是 Ubuntu),有打开文件限制。你可以知道,打开文件限制使用ulimit -n来自用户-shell。例如,如果您想知道 "jenkins" 用户的“ulimit -n”,您可以这样做:将 shell 更改为 "jenkins" 用户执行“su - jenkins”,然后 ulimit -n。默认值为 1024。您可以通过以下操作将此值增加到 4096 或更多:ulimit -n 4096

或者,您可以在 /etc/security/limits.conf 文件中创建一个新的 ulimit 记录,如下所示。

jenkins      soft   nofile  4096
jenkins      hard   nofile  8192

解释(你可以阅读/etc/security/limits.conf文件来更好地理解)

jenkins -- user/group 名字

软/硬 -- link 类型。 注意:软link可以从0到硬link。

nofile -- 打开文件数 这是价值。