[Libreoffice-commits] online.git: wsd/LOOLWSD.cpp
Gökhan Karabulut (via logerrit)
logerrit at kemper.freedesktop.org
Mon Aug 10 10:20:27 UTC 2020
wsd/LOOLWSD.cpp | 8 ++++++++
1 file changed, 8 insertions(+)
New commits:
commit e2e638c468f35322fc123664fd749b199f531780
Author: Gökhan Karabulut <gokhanettin at gmail.com>
AuthorDate: Sat Aug 8 23:05:17 2020 +0300
Commit: Michael Meeks <michael.meeks at collabora.com>
CommitDate: Mon Aug 10 12:20:08 2020 +0200
tdf#124478: Log maximum file descriptor related limits
The number of available file descriptors in a system limits the number
of documents we can open. We use an fd for client connection, another fd
for communication with a kit process and a wakeup pipe with 2 fds.
Therefore, we are left with the maximum number of fds divided by 4
documents. Out of these documents, reserve 8 (i.e., 32 fds) and log the
remaining number of documents allowed by the system. Note that Online
instance can further configure a limit for the maximum number of open
documents, which is also logged.
Also log the maximum file descriptor allowed by the system, which is the
number of available file descriptors - 1.
Change-Id: I3972690a6c9995e8d74dcfe25fe87b1ef4c33d4b
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/100393
Tested-by: Jenkins
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
Tested-by: Michael Meeks <michael.meeks at collabora.com>
Reviewed-by: Michael Meeks <michael.meeks at collabora.com>
diff --git a/wsd/LOOLWSD.cpp b/wsd/LOOLWSD.cpp
index 02feb23b7..b8c75e5b5 100644
--- a/wsd/LOOLWSD.cpp
+++ b/wsd/LOOLWSD.cpp
@@ -41,6 +41,7 @@
#include <sys/types.h>
#include <sys/wait.h>
+#include <sys/resource.h>
#include <cassert>
#include <cerrno>
@@ -1327,6 +1328,13 @@ void LOOLWSD::initialize(Application& self)
LOOLWSD::MaxDocuments = LOOLWSD::MaxConnections;
}
+ struct rlimit rlim;
+ ::getrlimit(RLIMIT_NOFILE, &rlim);
+ LOG_INF("Maximum file descriptor supported by the system: " << rlim.rlim_cur - 1);
+ // 4 fds per document are used for client connection, Kit process communication, and
+ // a wakeup pipe with 2 fds. 32 fds (i.e. 8 documents) are reserved.
+ LOG_INF("Maximum number of open documents supported by the system: " << rlim.rlim_cur / 4 - 8);
+
LOG_INF("Maximum concurrent open Documents limit: " << LOOLWSD::MaxDocuments);
LOG_INF("Maximum concurrent client Connections limit: " << LOOLWSD::MaxConnections);
More information about the Libreoffice-commits
mailing list