Hi, The functionality has been implemented and will be part of the next Monit release. A big thank you to Lutz for the initial patch.
Cheers, Martin > On 25. 6. 2025, at 21:08, Lutz Mader <[email protected]> wrote: > > Hello Jamie, > I create a issue to request this feature, see > https://bitbucket.org/tildeslash/monit/issues/1132/additional-swap-monitoring > > Nice to know, the changes fit to your requirements, > Lutz > > > Am 24.06.25 um 11:31 schrieb Jamie Burchell via This is the general > mailing list for monit: >> Hello Lutz >> >> I just wanted to feedback that I have been sucessfully runnning your test >> build with the enchanged swap file monitoring and it's working really well. >> >> It would be great to get this in a new release. >> >> Thanks >> Jamie >> >> >> >> Hello Jamie, >> no, something like this should match, if the si is above 100 for one cycle. >> >> if pagein > 100 pages then alert >> if pagein > 100 pages for 4 cycles then alert >> >> Or continuously above 100 in each cycle for 4 cycles. >> >> Based on your data you will get a match based on this test rule. >> >> if pagein > 15 pages 4 times within 6 cycles then alert >> >> See >> https://mmonit.com/monit/documentation/monit.html#FAULT-TOLERANCE >> >> To increase the time from 30s to 120s the check should be done every 4 >> cycles only. >> >> check system $HOST >> every 4 cycles >> if pagein > 100 pages then alert >> >> Lutz >> >> p.s. >> Nice to know. >> >>> Not sure why the EPEL version doesn't need it, but I have it >>> working now. >> >> The LIBNSL is no available in Redhat/REL 9 environments too. >> But in general Monit for Linux is build with LIBNSL, I think. >> >> The pagein/pageout test seems to be useful. >> But the pagefault/pagehit/pagepurge test is not useful and not available >> in all environments. >> >> >> Am 07.05.25 um 15:38 schrieb Jamie Burchell via This is the general >> mailing list for monit: >>> Hi Lutz >>> >>> If I set monit to alert if pagein > 100 pages for 4 cycles, does this >>> mean: >>> >>> 1. Alert if threshold of 100 is reached 4 times or more at each 30 second >>> interval check >>> 2. Alert if there have been > 100 over in a 120 second period? >>> >>> With the config above, this system status triggered it, so I'm assuming >>> option 2. >>> >>> $ vmstat 30 >>> >>> procs -----------memory---------- ---swap-- -----io---- -system-- >>> ------cpu----- >>> r b swpd free buff cache si so bi bo in cs us sy id >>> wa st >>> 1 0 836140 2360564 0 2250752 0 0 20 6 1 3 3 2 >>> 94 >>> 0 0 >>> 0 0 836140 2339544 0 2254452 20 0 141 22 1325 1915 5 2 >>> 93 >>> 0 0 >>> 0 0 836140 2352480 0 2254520 12 0 12 26 763 936 2 2 >>> 96 >>> 0 0 >>> 0 0 835884 2348424 0 2254584 18 0 18 12 963 1234 2 2 >>> 96 >>> 0 0 >>> 0 0 835628 2344712 0 2254652 9 0 9 24 1419 1925 4 4 >>> 92 >>> 0 0 >>> 0 0 834092 2307980 0 2256760 68 0 135 18 1625 2140 5 4 >>> 91 >>> 0 0 >>> 0 0 833580 2273028 0 2258300 25 0 57 34 1219 1640 4 3 >>> 93 >>> 0 0 >>> >>> Thanks >>> Jamie >>> >>> -----Original Message----- >>> From: [email protected] >>> <[email protected]> On Behalf Of Lutz Mader >>> Sent: 02 May 2025 16:45 >>> To: This is the general mailing list for monit <[email protected]> >>> Subject: Re: More intelligent swap monitoring? >>> >>> Hello Jamie, >>> this is a simple tgz Package, feel free to unpack the package and copy >>> the bin/monit file to a proper place. But keep in mind, this is a test >>> package only, based on Monit 5.35.0 for Linux x86_64. >>> >>>> That's brilliant - thank you very much. >>> >>> The official fix will became available with 5.36.0, maybe. >>> >>> The data should be similar to the data from "vmstat -s" and "vmstat 30" >>> (see your monitrc file, option "set daemon 30"). >>> >>> Keep in mind, >>> this is for testing/validation purpose only, >>> Lutz >>> >>> >>> >>> Am 02.05.25 um 15:14 schrieb Jamie Burchell via This is the general >>> mailing list for monit: >>>> Hi Lutz >>>> >>>> That's brilliant - thank you very much. >>>> >>>> I'm currently using the version 5.33.0 from EPEL (Rocky Linux 9). How >>>> should >>>> I replace/install the test package? >>>> >>>> Thanks in advance >>>> Jamie >>>> >>>> -----Original Message----- >>>> From: [email protected] >>>> <[email protected]> On Behalf Of Lutz Mader >>>> Sent: 02 May 2025 02:11 >>>> To: This is the general mailing list for monit <[email protected]> >>>> Subject: Re: More intelligent swap monitoring? >>>> >>>> Sorry Jamie, I'm late. >>>> >>>> Based on your suggestion I add a new test to "check system". >>>> >>>> check system $HOST >>>> # if memory usage > 75% then alert >>>> # if swap usage > 25% then alert >>>> if pagein > 10 pages then alert >>>> if pageout > 20 pages then alert >>>> if pagefault > 50 pages then alert >>>> >>>> A test package is available from >>>> https://bitbucket.org/lutzmad/monit/downloads/monit-vmstat-suse12-x64.tar.gz >>>> >>>> Let me know, if this will fix you problem, >>>> Lutz >>>> >>>> Appendage: >>>> ~/bin/monit status slesbuild >>>> Monit 5.35.0 uptime: 20m >>>> >>>> System 'slesbuild' >>>> status OK >>>> monitoring status Monitored >>>> monitoring mode active >>>> on reboot start >>>> load average [0.00] [0.00] [0.05] >>>> cpu 0.4%usr 3.3%sys 0.0%nice 2.1%iowait >>>> 0.0%hardirq 0.0%softirq 0.0%steal 0.0%guest 0.0%guestnice >>>> memory usage 492.2 MB [27.4%] >>>> swap usage 8.0 MB [0.4%] >>>> pagein count 0 [58] >>>> pageout count 0 [2050] >>>> uptime 5h 0m >>>> boot time Thu, 01 May 2025 21:02:12 >>>> filedescriptors 3264 [1.8% of 180992 limit] >>>> data collected Fri, 02 May 2025 02:03:04 >>>> >>>> >>>> Am 17.01.25 um 11:51 schrieb Jamie Burchell via This is the general >>>> mailing list for monit: >>>>> Hello >>>>> >>>>> I have reduced the amount of memory one of the services was consuming, >>>>> which >>>>> has abated the problem for now. However, there's still some swap being >>>>> used >>>>> so perhaps in a few days time the problem will come up again. >>>>> >>>>> Here's the output of /proc/meminfo as requested >>>>> >>>>> MemTotal: 7868472 kB >>>>> MemFree: 671568 kB >>>>> MemAvailable: 3261880 kB >>>>> Buffers: 0 kB >>>>> Cached: 893768 kB >>>>> SwapCached: 47448 kB >>>>> Active: 2661256 kB >>>>> Inactive: 1320396 kB >>>>> Active(anon): 2400964 kB >>>>> Inactive(anon): 800724 kB >>>>> Active(file): 260292 kB >>>>> Inactive(file): 519672 kB >>>>> Unevictable: 3072 kB >>>>> Mlocked: 0 kB >>>>> SwapTotal: 4194300 kB >>>>> SwapFree: 3923228 kB >>>>> Zswap: 0 kB >>>>> Zswapped: 0 kB >>>>> Dirty: 32 kB >>>>> Writeback: 0 kB >>>>> AnonPages: 3003564 kB >>>>> Mapped: 169140 kB >>>>> Shmem: 113804 kB >>>>> KReclaimable: 2124156 kB >>>>> Slab: 2540272 kB >>>>> SReclaimable: 2124156 kB >>>>> SUnreclaim: 416116 kB >>>>> KernelStack: 13712 kB >>>>> PageTables: 77444 kB >>>>> SecPageTables: 0 kB >>>>> NFS_Unstable: 0 kB >>>>> Bounce: 0 kB >>>>> WritebackTmp: 0 kB >>>>> CommitLimit: 8128536 kB >>>>> Committed_AS: 12257916 kB >>>>> VmallocTotal: 34359738367 kB >>>>> VmallocUsed: 31016 kB >>>>> VmallocChunk: 0 kB >>>>> Percpu: 1840 kB >>>>> HardwareCorrupted: 0 kB >>>>> AnonHugePages: 1378304 kB >>>>> ShmemHugePages: 0 kB >>>>> ShmemPmdMapped: 0 kB >>>>> FileHugePages: 0 kB >>>>> FilePmdMapped: 0 kB >>>>> CmaTotal: 0 kB >>>>> CmaFree: 0 kB >>>>> Unaccepted: 0 kB >>>>> HugePages_Total: 0 >>>>> HugePages_Free: 0 >>>>> HugePages_Rsvd: 0 >>>>> HugePages_Surp: 0 >>>>> Hugepagesize: 2048 kB >>>>> Hugetlb: 0 kB >>>>> DirectMap4k: 118624 kB >>>>> DirectMap2M: 8269824 kB >>>>> >>>>> Regards >>>>> Jamie >>>>> >>>>> >>>>> -- >>>>> >>>>> >>>>> -----Original Message----- >>>>> From: [email protected] >>>>> <[email protected]> On Behalf Of Lutz >>>>> Mader >>>>> Sent: 15 January 2025 20:37 >>>>> To: This is the general mailing list for monit >>>>> <[email protected]> >>>>> Subject: Re: More intelligent swap monitoring? >>>>> >>>>> Hello, >>>>> I have no useful examples, vmstat swap usage is si=0 and so=0 only. >>>>> The values calculated based on /proc/meminfo fit, on a Linux system. >>>>> >>>>> And the system status information seems to be useful. >>>>> >>>>>> Is it possible to configure Monit to alert of actual swapping >>>>>> out rather than swap file usage, or am I barking up the wrong tree? >>>>> >>>>> You are right, monit does not show the actual swap file IO (page in/out >>>>> data), the data based on the usage. >>>>> >>>>> monit status LINUX >>>>> Monit 5.34.0 uptime: 49d 0h 43m >>>>> >>>>> System 'LINUX' >>>>> status OK >>>>> monitoring status Monitored >>>>> monitoring mode active >>>>> on reboot start >>>>> load average [7.30] [8.60] [12.77] >>>>> cpu 0.8%usr 0.3%sys 14.7%nice 0.0%iowait >>>>> 0.0%hardirq 0.0%softirq 0.0%steal 0.0%guest 0.0%guestnice >>>>> memory usage 42.6 GB [11.3%] >>>>> swap usage 10.4 MB [0.5%] >>>>> uptime 61d 19h 43m >>>>> boot time Thu, 14 Nov 2024 14:54:46 >>>>> filedescriptors 16800 [0.2% of 6815744 limit] >>>>> data collected Wed, 15 Jan 2025 10:37:52 >>>>> >>>>> The vmstat data. >>>>> >>>>> Swap >>>>> si: Amount of memory swapped in from disk (/s). >>>>> so: Amount of memory swapped to disk (/s). >>>>> >>>>> vmstat >>>>> procs -----------memory---------- ---swap-- -----io---- -system-- >>>>> ------cpu----- >>>>> r b swpd free buff cache si so bi bo in cs us sy >>>>> id wa st >>>>> 7 0 10624 273713168 811688 87684144 0 0 69 40 0 0 11 >>>>> 1 88 0 0 >>>>> >>>>> vmstat -s >>>>> 395130516 K total memory >>>>> 120558732 K used memory >>>>> 90364732 K active memory >>>>> 11131200 K inactive memory >>>>> 274571784 K free memory >>>>> 811824 K buffer memory >>>>> 88984004 K swap cache >>>>> 2095100 K total swap >>>>> 10624 K used swap >>>>> 2084476 K free swap >>>>> 1313872869 non-nice user cpu ticks >>>>> 1427185498 nice user cpu ticks >>>>> 247910673 system cpu ticks >>>>> 22633904247 idle cpu ticks >>>>> 6802373 IO-wait cpu ticks >>>>> 0 IRQ cpu ticks >>>>> 2608560 softirq cpu ticks >>>>> 0 stolen cpu ticks >>>>> 17687866581 pages paged in >>>>> 10300491953 pages paged out >>>>> 1345 pages swapped in >>>>> 6655 pages swapped out >>>>> 3444460676 interrupts >>>>> 416044891 CPU context switches >>>>> 1731592487 boot time >>>>> 273618695 forks >>>>> >>>>> The values based on /proc/meminfo. >>>>> >>>>> cat /proc/meminfo >>>>> MemTotal: 395130516 kB >>>>> MemFree: 275604548 kB >>>>> MemAvailable: 353323016 kB >>>>> Buffers: 811800 kB >>>>> Cached: 85849340 kB >>>>> SwapCached: 892 kB >>>>> Active: 89256636 kB >>>>> Inactive: 11124384 kB >>>>> Active(anon): 18733260 kB >>>>> Inactive(anon): 3398376 kB >>>>> Active(file): 70523376 kB >>>>> Inactive(file): 7726008 kB >>>>> Unevictable: 975348 kB >>>>> Mlocked: 975348 kB >>>>> SwapTotal: 2095100 kB >>>>> SwapFree: 2084476 kB >>>>> Dirty: 468 kB >>>>> Writeback: 0 kB >>>>> AnonPages: 14695184 kB >>>>> Mapped: 2965708 kB >>>>> Shmem: 8423756 kB >>>>> Slab: 8029800 kB >>>>> SReclaimable: 2699580 kB >>>>> SUnreclaim: 5330220 kB >>>>> KernelStack: 70320 kB >>>>> PageTables: 421232 kB >>>>> NFS_Unstable: 0 kB >>>>> Bounce: 0 kB >>>>> WritebackTmp: 0 kB >>>>> CommitLimit: 199660356 kB >>>>> Committed_AS: 26151808 kB >>>>> VmallocTotal: 34359738367 kB >>>>> VmallocUsed: 0 kB >>>>> VmallocChunk: 0 kB >>>>> HardwareCorrupted: 0 kB >>>>> AnonHugePages: 0 kB >>>>> ShmemHugePages: 0 kB >>>>> ShmemPmdMapped: 0 kB >>>>> HugePages_Total: 0 >>>>> HugePages_Free: 0 >>>>> HugePages_Rsvd: 0 >>>>> HugePages_Surp: 0 >>>>> Hugepagesize: 2048 kB >>>>> DirectMap4k: 37410524 kB >>>>> DirectMap2M: 286273536 kB >>>>> DirectMap1G: 80740352 kB >>>>> >>>>> The values are used to calculate the monit swap data. >>>>> >>>>> in src/process/sysdep_LINUX.c >>>>> >>>>> used_system_memory_sysdep(SystemInfo_T *si) >>>>> >>>>> // Swap >>>>> if (! (ptr = strstr(buf, "SwapTotal:")) || sscanf(ptr + 10, >>>>> "%llu", &swap_total) != 1) { >>>>> Log_error("system statistic error -- cannot get swap >>>>> total amount\n"); >>>>> goto error; >>>>> } >>>>> if (! (ptr = strstr(buf, "SwapFree:")) || sscanf(ptr + 9, >>>>> "%llu", &swap_free) != 1) { >>>>> Log_error("system statistic error -- cannot get swap >>>>> free amount\n"); >>>>> goto error; >>>>> } >>>>> si->swap.size = swap_total * 1024; >>>>> si->swap.usage.bytes = (swap_total - swap_free) * 1024; >>>>> >>>>> The question is, >>>>> how does the /proc/meminfo output data look like on your system. >>>>> >>>>> Are some examples available, based on vmstat and the /proc/meminfo data. >>>>> >>>>> Lutz >>>>> >>>>> >>>>> Am 14.01.25 um 12:10 schrieb Jamie Burchell via This is the general >>>>> mailing list for monit: >>>>>> Hi >>>>>> >>>>>> >>>>>> >>>>>> I currently use Monit to alert me if swap usage is over > 20%. This >>>>>> works >>>>>> most of the time, but I have a particularly stubborn VM currently which >>>>>> appears to like to add data to swap and then not touch it. Using vmstat >>>>>> shows there are either no, or maybe the odd non-zero swap in operation >>>>>> and >>>>>> no swap outs. Is it possible to configure Monit to alert of actual >>>>>> swapping >>>>>> out rather than swap file usage, or am I barking up the wrong tree? >>>>>> >>>>>> >>>>>> >>>>>> Thanks in advance! >>>>>> >>>>>> Jamie >>>>>> >>>>> >>>>> >>>> >>>> >>> >>> >> >> > >
