Cloud ShellアイドルCPU使用率が比較的高いようです(3〜6%)。この使用量はどこで発生しますか?

Cloud ShellアイドルCPU使用率が比較的高いようです(3〜6%)。この使用量はどこで発生しますか?
top - 12:10:09 up  2:18,  6 users,  load average: 0.03, 0.03, 0.00
Tasks:  35 total,   1 running,  34 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.1 us,  1.4 sy,  0.0 ni, 96.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1735912 total,   437708 free,   378916 used,   919288 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  1188436 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                            
  251 alan_ch+  20   0  636432  12428   6504 S  0.2  0.7   0:02.46 python         
    1 root      20   0   17980   2800   2496 S  0.0  0.2   0:00.01 bash           
    8 root      20   0  250120   2212   1776 S  0.0  0.1   0:00.84 rsyslogd
   38 root      20   0   69952   3040   2268 S  0.0  0.2   0:00.00 sshd                                                               

Google Cloud には次のものが含まれます。雲の殻。これは、簡単な管理またはテスト作業に使用できるインタラクティブなLinuxサンドボックスを提供します。使用にお支払いやお支払い情報は必要ありません。 利用規約に同意する

top間隔()を増やしても、CPU使用率の要約には常に3〜6%程度が表示されますtop -d 10。ただし、個々のプロセスごとに表示されるCPU使用量を見ると、合計されないことがわかります。

CPUは何を使用しますか?

ベストアンサー1

現在、Cloud Shell は柔軟性を最大化するためにパーソナル仮想マシンを作成しています。ただし、これは実際のシェルがコンテナ内で実行されていることを示しています。コンテナは高い権限を持っていますが、別々のPID名前空間を使用しているため、コンテナ外のプロセスを見ることはできません。

$ amicontained
Container Runtime: kube
Has Namespaces:
        pid: true
        user: false
AppArmor Profile: unconfined
Capabilities:
        BOUNDING -> chown dac_override dac_read_search fowner fsetid kill setgid setuid setpcap linux_immutable net_bind_service net_broadcast net_admin net_raw ipc_lock ipc_owner sys_module sys_rawio sys_chroot sys_ptrace sys_pacct sys_admin sys_boot sys_nice sys_resource sys_time sys_tty_config mknod lease audit_write audit_control setfcap mac_override mac_admin syslog wake_alarm block_suspend audit_read
Chroot (not pivot_root): false
Seccomp: disabled

特権コンテナは次のとおりです。脱出する、よく作成されたシェルコマンドを使用します。これはセキュリティの脆弱性ではなく、意図した目的ではありません。 (Cloud Shell リソースを乱用しないでください。信頼できます。Google仮想マシンのリソース使用量の監視について学びます。

たとえば、devtmpfsをマウントし、パイプを作成し、/を使用してcore_patternシェルを開くことができました。シェルの内部からコンテナに戻ります。/dev/fifo_in/dev/fifo_out名前空間のみ。その後、新しいprocfsマウントで/ procをオーバーマウントするだけで十分です。これにより、top別の Cloud Shell タブで開くことができ、次のように表示されます。所有者PID名前空間。

(まだ)アイドルリソースの使用を最適化すると仮定します。

top - 12:50:14 up  2:58,  3 users,  load average: 0.01, 0.05, 0.04
Tasks: 127 total,   1 running,  96 sleeping,   0 stopped,   1 zombie
%Cpu(s):  3.1 us,  1.5 sy,  0.0 ni, 95.4 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1735912 total,   444240 free,   351448 used,   940224 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  1215836 avail Mem

USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                  
root      20   0  413140  58704  26008 S  2.7  3.4   4:31.18 kubelet      
root      20   0  378940  46260  15912 S  0.6  2.7   1:03.18 dockerd                                                                  
root      20   0  184008   9760   5408 S  0.1  0.6   0:14.27 python         
alan_ch+  20   0  644372  12392   6584 S  0.1  0.7   0:00.07 python         
root      20   0   66364  33976  33472 S  0.1  2.0   0:10.34 systemd-journal   
root      20   0  292264  22488  13616 S  0.1  1.3   0:04.56 docker-containe   
root      20   0  369808  64224  36928 S  0.1  3.7   0:03.81 dockerd          
root      20   0  365684   6408   3668 S  0.1  0.4   0:06.00 docker-containe
alan_ch+  20   0   58060  20272   7560 S  0.0  1.2   0:01.27 python                                                                   
root      20   0       0      0      0 I  0.0  0.0   0:04.42 rcu_sched                                                                

おすすめ記事