aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulius Knorr <jus@bitgrid.net>2024-10-16 18:12:05 +0200
committerJulius Knorr <jus@bitgrid.net>2025-04-16 14:40:16 +0200
commit44d6f4390e5f1cfc5604bef559491756e2b75f14 (patch)
tree6e2b3538eb214042e6e998e3b9e28ceb463f265f
parent82efa591f49544d3db3edc51da0d2e4f76a21ae7 (diff)
downloadnextcloud-server-backport/48738/stable31.tar.gz
nextcloud-server-backport/48738/stable31.zip
perf: Log requests using high amount of memory as warningbackport/48738/stable31
Signed-off-by: Julius Knorr <jus@bitgrid.net>
-rw-r--r--lib/base.php15
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/base.php b/lib/base.php
index 73a7bbc5a40..bfc1c8b2da1 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -836,6 +836,21 @@ class OC {
register_shutdown_function(function () use ($eventLogger) {
$eventLogger->end('request');
});
+
+ register_shutdown_function(function () {
+ $memoryPeak = memory_get_peak_usage();
+ $logLevel = match (true) {
+ $memoryPeak > 500_000_000 => ILogger::FATAL,
+ $memoryPeak > 400_000_000 => ILogger::ERROR,
+ $memoryPeak > 300_000_000 => ILogger::WARN,
+ default => null,
+ };
+ if ($logLevel !== null) {
+ $message = 'Request used more than 300 MB of RAM: ' . \OCP\Util::humanFileSize($memoryPeak);
+ $logger = Server::get(LoggerInterface::class);
+ $logger->log($logLevel, $message, ['app' => 'core']);
+ }
+ });
}
/**