Implement Gitlab::Memory::Sidekiq::MemoryKiller::Watcher with default NullHandler
We should introduce NullHandler for Sidekiq Memory Killer which can be enabled by the feature flag. This would allow us to safely fine-tune the limits and grace period for Sidekiq Memory Killer without killing the Sidekiq and restarting the pods.
- Create a new Gitlab::Memory::Sidekiq::MemoryKiller::Watcher which will be responsible for monitoring RSS of the Sidekiq process
- Create a new Gitlab::Memory::Sidekiq::MemoryKiller::NullHandler which will be default handler for handling high rss. this handler will not restart/terminate the process
Create a new Gitlab::Memory::Sidekiq::MemoryKiller::Watcher should be used with BackgroundTask
class.
We are currently collecting current RSS with:
Gitlab::Popen.popen(%W(ps -o rss= -p #{pid}), Rails.root.to_s)
which is expensive, but we could simply use:
System.memory_usage_rss
Edited by Nikola Milojevic