5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

メモリ残容量を意図的に減らす方法

Posted at

Linuxでメモリ残容量を意図的に減らす

  • テストの一環でメモリの残容量を減らして別システムにアラームが飛ぶかを確認していたが当初考えていた手順ではうまく動かなかったのでメモ
  • 環境
# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)

最初に考えていた手順

# /dev/null < $(yes)
# free -h -s 1

実際に返ってきた結果

-bash: xrealloc: cannot allocate 18446744071562067968 bytes (1945600 bytes allocated)
  • メモリの残容量が1.8GBあたりでとまってしまう → Why?

別の方法を試す

stress --vm 2 --vm-bytes 3G --timeout 2m
  • こうなった。orz
-bash: stress: command not found
  • 導入されているパッケージが絞られている仕様のためstressコマンドが存在しなかった

/dev/null < $(yes) だけで乗り切ろうと頑張る

  • xargsで並列処理を試みる
xargs -P64 -n1 /dev/null > ($yes)
  • なぜか最初の手順と結果が変わらず

  • バックグラウンドで実行してみる

# /dev/null < $(yes) & /dev/null < $(yes) & /dev/null < $(yes)
  • 結果、順調に残メモリが減少しアラームが通知された
              total        used        free      shared  buff/cache   available
Mem:           7.6G        4.7G        1.5G         16M        1.4G        2.5G
Swap:          4.0G          0B        4.0G

              total        used        free      shared  buff/cache   available
Mem:           7.6G        5.0G        1.2G         16M        1.4G        2.2G
Swap:          4.0G          0B        4.0G

              total        used        free      shared  buff/cache   available
Mem:           7.6G        5.3G        953M         16M        1.4G        1.9G
Swap:          4.0G          0B        4.0G

              total        used        free      shared  buff/cache   available
Mem:           7.6G        5.6G        650M         16M        1.4G        1.6G
Swap:          4.0G          0B        4.0G

              total        used        free      shared  buff/cache   available
Mem:           7.6G        5.9G        352M         16M        1.4G        1.3G
Swap:          4.0G          0B        4.0G

              total        used        free      shared  buff/cache   available
Mem:           7.6G        6.2G        130M         16M        1.3G        1.0G
Swap:          4.0G        2.0M        4.0G

めでたしめでたし

疑問点

↓これは何だろう?

-bash: xrealloc: cannot allocate 18446744071562067968 bytes (1945600 bytes allocated)

xargsがうまく動かなかった理由が不明

参考文献

[意図的にLinuxサーバに負荷をかける方法 stressコマンド編]
https://blog.supersonico.info/?p=223

【Linux】stressコマンドを使わずに手軽にメモリ負荷をかける方法
https://techblog.ap-com.co.jp/entry/linux-memory

Linuxコマンド(Bash)でバックグラウンド実行する方法のまとめメモ
https://qiita.com/inosy22/items/341cfc589494b8211844

5
4
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
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?