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
>>>>
>>>
>>>
>>
>>
>
>

  • More intelli... Jamie Burchell via This is the general mailing list for monit
    • Re: Mor... Lutz Mader
      • RE:... Jamie Burchell via This is the general mailing list for monit
        • ... Lutz Mader
          • ... Jamie Burchell via This is the general mailing list for monit
            • ... Lutz Mader
              • ... Jamie Burchell via This is the general mailing list for monit
              • ... Jamie Burchell via This is the general mailing list for monit
                • ... Lutz Mader
                • ... Jamie Burchell via This is the general mailing list for monit
                • ... Lutz Mader
                • ... Jamie Burchell via This is the general mailing list for monit
                • ... [email protected]
                • ... Jamie Burchell via This is the general mailing list for monit
                • ... Lutz Mader
              • ... Jamie Burchell via This is the general mailing list for monit
                • ... SZÉPE Viktor
                • ... Jamie Burchell via This is the general mailing list for monit

Reply via email to