snap の Chrome で Renderer process の VIRT メモリが異様にでかい

top でプロセスをみてみると、Chrome の VIRT が、1156g と随分と大きいことに気づいた。

Tasks: 408 total,   1 running, 406 sleeping,   0 stopped,   1 zombie
%Cpu(s):  0.1 us,  0.1 sy,  0.0 ni, 99.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :  60125.4 total,  19360.3 free,   2776.5 used,  37988.7 buff/cache
MiB Swap:      0.0 total,      0.0 free,      0.0 used.  55193.9 avail Mem 

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                                                                                                                  
   2674 user       9 -11 2082312  21568  16576 S   0.3   0.0  27:50.87 pulseaudio                                                                                                                                                               
   2916 user      20   0 5891180 489184 190352 S   0.3   0.8  54:43.97 gnome-shell                                                                                                                                                              
 177283 root      20   0   14528   4224   3200 S   0.3   0.0   0:13.38 top                                                                                                                                                                      
 178027 user      20   0 1157.6g 241160 144992 S   0.3   0.4   0:33.47 chrome                                                                                                                                                                   
 179322 user      20   0 1156.0g 250216 139056 S   0.3   0.4   2:31.40 chrome                                                                                                                                                                   
 181811 user      20   0   14504   4224   3200 R   0.3   0.0   0:00.01 top                                                                                                                                                                      
      1 root      20   0  169060  13136   7632 S   0.0   0.0   0:08.03 systemd                                                                                                                                                                  
      2 root      20   0       0      0      0 S   0.0   0.0   0:00.05 kthreadd                                             

VIRT のため、仮想アドレス空間の確保のみで、実メモリ使用は RES の方にはなる。
64 bit プロセスだと、32 bit のように仮想アドレス空間が 4GB しかないということもないため、特に問題は起きないが、なぜこんなにサイズ大きいのか・・。

pmap -x でみてみると、サイズのでかい anon が1つある。

# pmap -x 179322 | sort -k 2 -n
Address           Kbytes     RSS   Dirty Mode  Mapping
total kB         1212165828  286096  148912
0000325800000000       4       0       0 -----   [ anon ]
0000325800001000       4       4       4 rw---   [ anon ]
00003258000d3000       4       0       0 -----   [ anon ]
...
0000003800000000 16778244       0       0 -----   [ anon ]
000039f500000000 33554432       0       0 -----   [ anon ]
00003a000000c000 1094713296       0       0 -----   [ anon ]

RSS が 0 のため、実メモリは消費していない。
確保してから copy-on-right がまだ一度も走っていない mmap を行った直後のような状態になっている。

Shift +ESC のタスクマネージャをみても、気になるところは特になかった。

chrome://memory-internals/ にアクセスしてみると、pid: 179322 は Renderer となっている。

/proc/[pid]/cmdline をみてみると、

root@ubuntu:~# cat /proc/179322/cmdline 
/snap/chromium/2993/usr/lib/chromium-browser/chrome --type=renderer --string-annotations --crashpad-handler-pid=131151 --enable-crash-reporter=,snap --change-stack-guard-on-fork=enable --lang=ja --num-raster-threads=4 --enable-main-frame-before-activation --renderer-client-id=785 --time-ticks-at-unix-epoch=-1736349881206425 --launch-time-ticks=216689782957 --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,11653314698668094572,12290277159487615524,262144 --disable-features=EyeDropper,TFLiteLanguageDetectionEnabled --variations-seed-versionroot@ubuntu:~# 

-type=renderer となっており、やはり、renderer プロセスの何かのようだ。

一度プロセスを完全に終了しても、この巨大なメモリ、確保されていた。

snap refresh chromium で、最新にアップデートしても同じだった。
つまり、デフォルトでこの状態になるようだった。

なぜ、こんな巨大なサイズの VIRT を確保しているのかわからなかったが、とりあえず、気にしないことにした。