[Libreoffice-commits] online.git: Branch 'distro/collabora/collabora-online-cd' - wsd/Admin.cpp wsd/Admin.hpp
Pranav Kant
pranavk at collabora.co.uk
Tue Aug 29 18:53:45 UTC 2017
wsd/Admin.cpp | 16 ++++++++++++----
wsd/Admin.hpp | 4 ++++
2 files changed, 16 insertions(+), 4 deletions(-)
New commits:
commit 73a6bd69a69aedf60bcf21bec2c66d3b5f30deb7
Author: Pranav Kant <pranavk at collabora.co.uk>
Date: Tue Aug 29 11:17:39 2017 +0530
admin: expose total available memory to admin clients
Take into reckoning the memproportion config value for total available
memory to us.
Change-Id: Ib93c88d746268f3e9f566beed7df77357d530eba
(cherry picked from commit 65e3f7c7df67eb89ea575752fe0890c98dc29f13)
Reviewed-on: https://gerrit.libreoffice.org/41686
Reviewed-by: Jan Holesovsky <kendy at collabora.com>
Tested-by: Jan Holesovsky <kendy at collabora.com>
diff --git a/wsd/Admin.cpp b/wsd/Admin.cpp
index 1e811dca..53bbc924 100644
--- a/wsd/Admin.cpp
+++ b/wsd/Admin.cpp
@@ -135,10 +135,11 @@ void AdminSocketHandler::handleMessage(bool /* fin */, WSOpCode /* code */,
}
}
else if (tokens[0] == "total_mem")
- {
- const auto totalMem = _admin->getTotalMemoryUsage();
- sendTextFrame("total_mem " + std::to_string(totalMem));
- }
+ sendTextFrame("total_mem " + std::to_string(_admin->getTotalMemoryUsage()));
+
+ else if (tokens[0] == "total_avail_mem")
+ sendTextFrame("total_avail_mem " + std::to_string(_admin->getTotalAvailableMemory()));
+
else if (tokens[0] == "kill" && tokens.count() == 2)
{
try
@@ -294,6 +295,13 @@ Admin::Admin() :
_totalSysMem = Util::getTotalSystemMemory();
LOG_TRC("Total system memory : " << _totalSysMem);
+ const auto memLimit = LOOLWSD::getConfigValue<double>("memproportion", static_cast<double>(0.0));
+ _totalAvailMem = _totalSysMem;
+ if (memLimit != 0.0)
+ _totalAvailMem = _totalSysMem * memLimit/100.;
+
+ LOG_TRC("Total available memory: " << _totalAvailMem << " (memproportion: " << memLimit << ").");
+
const auto totalMem = getTotalMemoryUsage();
LOG_TRC("Total memory used: " << totalMem);
_model.addMemStats(totalMem);
diff --git a/wsd/Admin.hpp b/wsd/Admin.hpp
index 65ca3243..978a5ade 100644
--- a/wsd/Admin.hpp
+++ b/wsd/Admin.hpp
@@ -70,6 +70,9 @@ public:
void pollingThread() override;
unsigned getTotalMemoryUsage();
+ /// Takes into account the 'memproportion' property in config file to find the amount of memory
+ /// available to us.
+ size_t getTotalAvailableMemory() { return _totalAvailMem; }
void modificationAlert(const std::string& dockey, Poco::Process::PID pid, bool value);
/// Update the Admin Model.
@@ -114,6 +117,7 @@ private:
int _forKitPid;
size_t _lastTotalMemory;
size_t _totalSysMem;
+ size_t _totalAvailMem;
std::atomic<int> _memStatsTaskIntervalMs;
std::atomic<int> _cpuStatsTaskIntervalMs;
More information about the Libreoffice-commits
mailing list