CPU/メモリ編

試験用コマンド/スクリプトの小技を列挙する(随時メンテ)。

# メモリ使用量確認
# freeやvmstatで空きメモリを確認するとき、事前にページキャッシュをクリアする。
# 古いカーネル(2.6.10前後以前)ではサポートされていない。
echo 3 > /proc/sys/vm/drop_caches

# CPU負荷テスト - 乱数/圧縮による負荷
gzip < /dev/urandom > /dev/null

# CPU負荷テスト - ファイルアクセスによる負荷
while [ 1 ]  ; do echo "0123456789" > /var/log/dummy ; done

# マルチコアのCPU負荷を5秒毎に確認する。
sudo apt install sysstat
mpstat -P ALL 5

# CPUコアを指定して負荷をかける。下記2つで実行内容は同じ。
taskset -c 4-7 gzip < /dev/urandom > /dev/null
taskset F0 gzip < /dev/urandom > /dev/null

付録:
一般的なアプリでCPUに高負荷をかけたいときは、ffmpegでのエンコードやトランスコードが良いと思う。例えば、私のカーナビでは800x480未満でないと再生できないので、下記スクリプトで変換しているが、このスクリプトを使用中、いい感じで8コア均等に高負荷がかかっている。

#!/bin/bash
width=800
height=480
ffmpeg -i "$1" -c:a copy -vf "scale=iw*min($width/iw\,$height/ih):ih*min($width/iw\,$height/ih), pad=$width:$height:($width-iw*min($width/iw\,$height/ih))/2:($height-ih*min($width/iw\,$height/ih))/2" output_"$1"