LoginSignup
0
0

AWS EC2 (Ubuntu22.04) 内で sysctl 設定値を更新する方法

Last updated at Posted at 2023-09-17

やりたいこと

Docker コンテナ (Ubuntu 22.04)
EC2 (Ubuntu 22.04)

以上の構成において、Dockerコンテナ内の sysctl の値として kernel.perf_event_paranoid=-1 を設定したい。

色々試した方法を結果をメモる。

前提知識

カーネルパラメータはホストマシンとDockerコンテナで共通の設定になっている。(ref)

方法

⭕️ EC2ホスト上で /etc/sysctl.confを書き換え、rebootする

sudo /bin/su -c "echo 'kernel.perf_event_paranoid = -1' >> /etc/sysctl.conf"
sudo reboot # sudoをつけないと失敗した

reboot後、EC2内およびコンテナ内で更新されたことを確認

sysctl -a | grep perf_event_paranoid
#> kernel.perf_event_paranoid = -1 # 成功

⭕️ EC2ホスト上で /etc/sysctl.confを書き換え、ホスト上で sysctl -p する。

sudo /bin/su -c "echo 'kernel.perf_event_paranoid = -1' >> /etc/sysctl.conf"
sudo sysctl -p # sudoをつけないと失敗した

# 確認
sysctl -a | grep perf_event_paranoid
#> kernel.perf_event_paranoid = -1 # 成功

なお、sudoをつけないと失敗した。

❌ Dockerコンテナのrun時の引数に --sysctl=kernel.perf_event_paranoid=-1を指定する

sudo docker run -it --privileged --sysctl=kernel.perf_event_paranoid=-1 <image> /bin/bash

Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
Error: sysctl 'kernel.perf_event_paranoid' is not allowed # 失敗

❓ Dockerコンテナ内で、/etc/sysctl.confを書き換え、rebootする

試してない

⭕️ Dockerコンテナ内で /etc/sysctl.confを書き換え、sysctl -p する。

# sudoをつけないと失敗した
sudo docker run -it --privileged --sysctl=kernel.perf_event_paranoid=-1 <image> /bin/bash

# コンテナ内で
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
echo 'kernel.perf_event_paranoid = -1' >> /etc/sysctl.conf
sysctl -p # sudoをつけなくても成功した
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0