supervision - discussion about system services, daemon supervision, init, runlevel management, and tools such as s6 and runit
 help / color / mirror / Atom feed
From: Arjun D R <drarjun95@gmail.com>
To: Dewayne Geraghty <dewayne@heuristicsystems.com.au>
Cc: supervision@list.skarnet.org
Subject: Re: Query on s6-log and s6-supervise
Date: Wed, 9 Jun 2021 09:00:38 +0530	[thread overview]
Message-ID: <CAHJ2E=kK8JgoqCHAqNzvUZJP4PUEEZeUhp_5RcTjWep7gxt=UQ@mail.gmail.com> (raw)
In-Reply-To: <6a95462b-547f-bef8-7cc2-8d9e26b6a61d@heuristicsystems.com.au>

[-- Attachment #1: Type: text/plain, Size: 6402 bytes --]

Thanks Laurent for the brief detail. That really helps.

I have checked the Private_Dirty memory in "smaps" of a s6-supervise
process and I don't see any consuming above 8kB. Just posting it here
for reference.

grep Private_Dirty /proc/991/smaps
Private_Dirty:         0 kB
Private_Dirty:         4 kB
Private_Dirty:         4 kB
Private_Dirty:         8 kB
Private_Dirty:         0 kB
Private_Dirty:         0 kB
Private_Dirty:         4 kB
Private_Dirty:         4 kB
Private_Dirty:         4 kB
Private_Dirty:         0 kB
Private_Dirty:         0 kB
Private_Dirty:         4 kB
Private_Dirty:         4 kB
Private_Dirty:         0 kB
Private_Dirty:         0 kB
Private_Dirty:         8 kB
Private_Dirty:         8 kB
Private_Dirty:         8 kB
Private_Dirty:         0 kB
Private_Dirty:         0 kB
Private_Dirty:         8 kB
Private_Dirty:         4 kB
Private_Dirty:         4 kB
Private_Dirty:         0 kB
Private_Dirty:         8 kB
Private_Dirty:         4 kB
Private_Dirty:         4 kB
Private_Dirty:         4 kB
Private_Dirty:         0 kB
Private_Dirty:         0 kB

cat /proc/991/smaps
00010000-00014000 r-xp 00000000 07:00 174        /bin/s6-supervise

00023000-00024000 r--p 00003000 07:00 174        /bin/s6-supervise

00024000-00025000 rw-p 00004000 07:00 174        /bin/s6-supervise

00025000-00046000 rw-p 00000000 00:00 0          [heap]

b6e1c000-b6e2d000 r-xp 00000000 07:00 3652       /lib/libpthread-2.31.so

b6e2d000-b6e3c000 ---p 00011000 07:00 3652       /lib/libpthread-2.31.so

b6e3c000-b6e3d000 r--p 00010000 07:00 3652       /lib/libpthread-2.31.so

b6e3d000-b6e3e000 rw-p 00011000 07:00 3652       /lib/libpthread-2.31.so

b6e3e000-b6e40000 rw-p 00000000 00:00 0

b6e40000-b6e45000 r-xp 00000000 07:00 3656       /lib/librt-2.31.so

b6e45000-b6e54000 ---p 00005000 07:00 3656       /lib/librt-2.31.so

b6e54000-b6e55000 r--p 00004000 07:00 3656       /lib/librt-2.31.so

b6e55000-b6e56000 rw-p 00005000 07:00 3656       /lib/librt-2.31.so

b6e56000-b6f19000 r-xp 00000000 07:00 3613       /lib/libc-2.31.so

b6f19000-b6f28000 ---p 000c3000 07:00 3613       /lib/libc-2.31.so

b6f28000-b6f2a000 r--p 000c2000 07:00 3613       /lib/libc-2.31.so

b6f2a000-b6f2c000 rw-p 000c4000 07:00 3613       /lib/libc-2.31.so

b6f2c000-b6f2e000 rw-p 00000000 00:00 0

b6f2e000-b6f4d000 r-xp 00000000 07:00 3665       /lib/libskarnet.so.2.9.2.1

b6f4d000-b6f5c000 ---p 0001f000 07:00 3665       /lib/libskarnet.so.2.9.2.1

b6f5c000-b6f5e000 r--p 0001e000 07:00 3665       /lib/libskarnet.so.2.9.2.1

b6f5e000-b6f5f000 rw-p 00020000 07:00 3665       /lib/libskarnet.so.2.9.2.1

b6f5f000-b6f6b000 rw-p 00000000 00:00 0

b6f6b000-b6f81000 r-xp 00000000 07:00 3605       /lib/ld-2.31.so

b6f87000-b6f89000 rw-p 00000000 00:00 0

b6f91000-b6f92000 r--p 00016000 07:00 3605       /lib/ld-2.31.so

b6f92000-b6f93000 rw-p 00017000 07:00 3605       /lib/ld-2.31.so

beaf8000-beb19000 rw-p 00000000 00:00 0          [stack]
Size:                132 kB
Rss:                   4 kB
Pss:                   4 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:         4 kB
Referenced:            4 kB
Anonymous:             4 kB
AnonHugePages:         0 kB
Swap:                  0 kB
KernelPageSize:        4 kB
MMUPageSize:           4 kB
Locked:                0 kB
VmFlags: rd wr mr mw me gd ac
becd5000-becd6000 r-xp 00000000 00:00 0          [sigpage]

ffff0000-ffff1000 r-xp 00000000 00:00 0          [vectors]

Sorry I am not able to post the whole data considering the mail size.

On my Linux system,
ps -axw -o pid,vsz,rss,time,comm | grep s6
    1   1732  1128 00:00:06 s6-svscan
  900   1736   452 00:00:00 s6-supervise
  901   1736   480 00:00:00 s6-supervise
  902   1736   444 00:00:00 s6-supervise
  903   1736   444 00:00:00 s6-supervise
  907   1744   496 00:00:00 s6-log
.....

And I don't think ps_mem is lying , I just compared it with smem as well.
Clear data on ps_mem:

 Private  +   Shared  =  RAM used       Program

  4.8 MiB + 786.0 KiB =   5.5 MiB       s6-log (46)
 12.2 MiB +   2.1 MiB =  14.3 MiB       s6-supervise (129)

smem:

  PID User     Command                         Swap      USS      PSS
 RSS
1020 root     s6-supervise wpa_supplicant        0       96       98
 996
 2001 root     s6-log -F wpa_supplicant.lo        0      104      106
1128

Same(almost) amount of PSS/RSS are used by other s6-supervise and s6-log
processes.

I have tried with flag "--enable-allstatic" and unfortunately I don't see
any improvement. If you were mentioning about shared memory, then yes we
are good here. It is using 2.1 MiB for 129 instances, but the private
memory is around 12.2 MiB. I am not sure whether this is the normal value
or not.

If possible, can you please share us a reference smap and ps_mem data on
s6-supervise. That would really help.

Dewayne, even though we pipe it to a file, we will be having a
s6-supervisor for the log service. Maybe I didn't understand it well. Sorry
about it. Please help me with that.

Thanks,
Arjun

On Wed, Jun 9, 2021 at 8:18 AM Dewayne Geraghty <
dewayne@heuristicsystems.com.au> wrote:

> Thanks Laurent, that's really interesting.  By comparison, my FBSD
> system uses:
>
> # ps -axw -o pid,vsz,rss,time,comm | grep s6
>        virt KB  resident cpu total
> 38724   10904   1600     0:00.02 s6-log
> 41848   10788   1552     0:00.03 s6-log
> 42138   10848   1576     0:00.01 s6-log
> 42222   10888   1596     0:00.02 s6-log
> 45878   10784   1516     0:00.00 s6-svscan
> 54453   10792   1544     0:00.00 s6-supervise
> ... lots ...
> 67937   10792   1540     0:00.00 s6-supervise
> 76442   10724   1484     0:00.01 s6-ipcserverd
> 76455   11364   1600     0:00.01 s6-fdholderd
> 84229   10896    712     0:00.01 s6-log
>
> Processes pull-in both ld-elf and libc.so, from procstat -v
> start           end             path
> 0x1021000       0x122a000       /usr/local/bin/s6-supervise
> 0x801229000     0x80124f000     /libexec/ld-elf.so.1
> 0x801272000     0x80144c000     /lib/libc.so.7
>
> Yes - libc is ... large.
>
> Arjun, if you want to reduce the number of s6-log processes perhaps
> consider piping them to a file which s6-log reads from.  For example we
> maintain various web servers, the accesses are unique and of interest to
> customers, but they don't (really) care about the errors so we aggregate
> this with one s6-log. Works very well  :)
>

  reply	other threads:[~2021-06-09  3:30 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-08  9:13 Arjun D R
2021-06-08 11:04 ` Laurent Bercot
2021-06-09  2:19   ` Dewayne Geraghty
2021-06-09  3:30     ` Arjun D R [this message]
2021-06-09  8:32       ` Colin Booth
2021-06-09 11:48       ` Laurent Bercot
2021-06-10  3:54         ` Arjun D R
     [not found]     ` <CAHJ2E=n4+bfO39LYfGaTpaqPGtPHUSy32++4t4n+PjdZz+S=Cw@mail.gmail.com>
2021-06-09  3:40       ` Dewayne Geraghty
2021-06-09  5:01         ` Arjun D R

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAHJ2E=kK8JgoqCHAqNzvUZJP4PUEEZeUhp_5RcTjWep7gxt=UQ@mail.gmail.com' \
    --to=drarjun95@gmail.com \
    --cc=dewayne@heuristicsystems.com.au \
    --cc=supervision@list.skarnet.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).