NashTech aces Memory Management with a System Monitoring Tool built on Rust
NashTech conceptualised Procespy, a process monitoring tool for Linux distributions that enables a user to automate the process of tracking the running processes and monitor them for RAM usage.
System administrators often have to deal with situations with sluggish and unresponsive applications, either due to high CPU, memory, or network utilisation. It is easy to manage resources when a server hosts a single process. However, that is not the case when multiple services are running on a shared server, and one needs to track how much resource is being consumed by every running process.
Why were we inspired to build a System Monitoring tool?
NashTech felt the need for an efficient & fast application monitoring tool to fully manage the performance of processes on a system in terms of memory utilisation. The idea was to help developers ensure that no critical process on their system is hampered because of the overutilisation of memory by any other process.
We wanted to build a real-time tool that will periodically monitor the system’s state and resolve any conflicts related to memory utilisation by the running processes. By automating this process, developers will not have to worry about high-priority processes getting disrupted or manually managing memory to prevent the same.
To address these challenges, we conceptualised Procespy, a process monitoring tool for Linux distributions that enables a user to automate the process of tracking the running processes and monitor them for RAM usage.
The major challenge that we faced while creating this tool was the retrieval of information regarding every possible application & process running on a system and the amount of memory they use to execute successfully.
A system monitoring tool’s main purpose is to manage a company’s IT infrastructure by:
How does Procespy solve the problem?
Predefined configurations for each process
Procespy was able to manage memory utilisation of all applications & processes as we defined configurations for each one of them in terms of the process names and the maximum amount of memory that can be allocated to them at a given point in time.
Termination of processes that exceed the threshold
If any process crosses the threshold assigned to them, which simply means it is using a higher amount of memory than what is permitted for it, then that particular process will be terminated to resolve the conflict.
Alerts & notifications
The user will be notified of this termination activity via a popup alert on the screen with a message giving details of the terminated process. Procespy also auto-generates an email indicating the status of the terminated service to the user.
Scheduled examination of the system
Procespy schedules itself in such a way that it conducts a system audit after a particular time interval to monitor the status of running processes in real-time.