オペレーティングシステム:Ubuntu 16.04
free
出力には約2GBの共有メモリが表示されます。共有メモリは、一定時間が経過しても割り当てられたままです。ログアウトであり、リスト内の特定のプロセスはtop
それを占有しません。
ipcs -m
この消費の単一プロセス(または合計)の表示はありません。
sync
あるいは、sysctl vm.drop_caches={1..3}
共有メモリが少なくなりません。 (予想キャッシュのみ)
実際には、書き込みブロックデバイスを使用しようとすると誤った問題が発生し、物理ファイルがdd
生成されることがわかります/dev/
(回答を参照)。
参考までに:
> grep ' /dev ' /proc/mounts
udev /dev devtmpfs rw,nosuid,relatime,size=1941504k,nr_inodes=485376,mode=755 0 0
何が共有メモリを占有しているかを把握するために、一般的にどのようなステップを踏みますか?
答え1
その理由は、ddコマンドにエラーを入力し、物理ファイル/ dev / mmcblk1を書き込んだからです。
> ll /dev/mmcblk*
-rw-r--r-- 1 root root 1.9G 2017-11-03 18:09 /dev/mmcblk1
brw-rw---- 1 root disk 179, 0 2017-11-03 18:10 /dev/mmcblk2
SDカードを取り外してエラーを確認した後、実際のファイルを削除してキャッシュ使用量を2GB削減しました。
例を再現するには:
> free -h
total used free shared buff/cache available
Mem: 3.7G 1.7G 919M 163M 1.2G 1.6G
> sudo dd if=/dev/zero of=/dev/BIG bs=1M count=700 status=progress
700+0 records in
700+0 records out
734003200 bytes (734 MB, 700 MiB) copied, 0.743527 s, 987 MB/s
> free -h
total used free shared buff/cache available
Mem: 3.7G 1.7G 221M 859M 1.8G 982M
> sudo rm /dev/BIG
> free -h
total used free shared buff/cache available
Mem: 3.7G 1.7G 904M 160M 1.2G 1.6G