ansible
InnoDBバッファプールサイズを利用可能なメモリの割合として設定しようとしています。しかし、報告ansible_memtotal_mb
してください。free
ホストにはどのくらいのメモリがありますか?。コンテナ内で利用可能なメモリ量を計算する方法は?コンテナ名は事前に不明です。
UPD私はDebianを実行しjessie
てcgroup_enable=memory
カーネルに引数を渡しています。
host
====
# lxc-checkconfig
Kernel configuration not found at /proc/config.gz; searching...
Kernel configuration found at /boot/config-3.16.0-4-amd64
--- Namespaces ---
Namespaces: enabled
Utsname namespace: enabled
Ipc namespace: enabled
Pid namespace: enabled
User namespace: enabled
Network namespace: enabled
Multiple /dev/pts instances: enabled
--- Control groups ---
Cgroup: enabled
Cgroup clone_children flag: enabled
Cgroup device: enabled
Cgroup sched: enabled
Cgroup cpu account: enabled
Cgroup memory controller: enabled
Cgroup cpuset: enabled
--- Misc ---
Veth pair device: enabled
Macvlan: enabled
Vlan: enabled
File capabilities: enabled
Note : Before booting a new kernel, you can check its configuration
usage : CONFIG=/path/to/config /usr/bin/lxc-checkconfig
# grep cgroup /var/lib/lxc/sta/config
lxc.cgroup.memory.limit_in_bytes = 1000M
# mount | grep memory
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
# cd /sys/fs/cgroup/memory
# cat memory.limit_in_bytes
18446744073709551615
# cat lxc/sta/memory.limit_in_bytes
1048576000
container
=========
$ cat /proc/self/cgroup
9:perf_event:/lxc/sta
8:blkio:/
7:net_cls,net_prio:/lxc/sta
6:freezer:/lxc/sta
5:devices:/
4:memory:/
3:cpu,cpuacct:/
2:cpuset:/lxc/sta
1:name=systemd:/user.slice/user-0.slice/session-10304.scope/system.slice/ssh.service
# mount | grep memory
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
# cd /sys/fs/cgroup/memory
# cat memory.limit_in_bytes
18446744073709551615
# cat lxc/sta/memory.limit_in_bytes
1048576000
ベストアンサー1
長すぎます。
cat /sys/fs/cgroup/memory$(cat /proc/self/cgroup | grep memory | cut -d: -f3)/memory.limit_in_bytes
または
cat $(mount | grep cgroup | grep memory | cut -d' ' -f3)$(cat /proc/self/cgroup | grep memory | cut -d: -f3)/memory.limit_in_bytes
デフォルトのコンテナ構成がコンテナ内部ホストのcgroup情報を受け入れる場合(lxc.mount.auto設定に従って)、次のようにcgroup情報を簡単に解析できます。
/proc/self/cgroupでcgroup情報を確認してください。
root@my-firefox:/# grep memory /proc/self/cgroup
4:memory:/cv/my-firefox
次に、cgroupマウントポイント(/ proc / mountsにあります)のメモリ制限ファイルの内容を確認します。
root@my-firefox:/# cd /sys/fs/cgroup/memory/cv/my-firefox/
root@my-firefox:/sys/fs/cgroup/memory/cv/my-firefox# cat memory.limit_in_bytes
268435456
上記の例では、cgroupルートがマウントされているため、/sys/fs/cgroup
その情報と追加のパスを使用して、/memory/cv/my-firefox
コンテナに設定されているすべてのメモリ制限を照会できます。
この例では、制限は256Mです。
PS:freeとansible_memtotal_mbはホストベースであり、コンテナをサポートしていません。私はAnsibleについて知りませんが、この情報を収集するためにカスタムファクトを作成できるPuppetの事実に似たものがあると思います。