diff options
author | Julius Knorr <jus@bitgrid.net> | 2024-10-16 18:12:05 +0200 |
---|---|---|
committer | Julius Knorr <jus@bitgrid.net> | 2025-04-16 14:40:16 +0200 |
commit | 44d6f4390e5f1cfc5604bef559491756e2b75f14 (patch) | |
tree | 6e2b3538eb214042e6e998e3b9e28ceb463f265f | |
parent | 82efa591f49544d3db3edc51da0d2e4f76a21ae7 (diff) | |
download | nextcloud-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.php | 15 |
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']); + } + }); } /** |