web-dev-qa-db-ja.com

なぜそんなにRAMがOSで使用されているのですか?

free -mコマンドを実行して、次の出力を取得しました。

             total       used       free     shared    buffers     cached
Mem:          7842       2443       5398        205        167       1631
-/+ buffers/cache:        645       7197
Swap:         8048          0       8048

私は現在2443 MBのRAMを使用していると言っています。

その後、次のコマンドを実行しました。これは、メモリを最も使用しているプロセスをリストします。

ps aux --sort=-%mem | awk 'NR<=10{print $0}'

そしてこの出力を得ました:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      1346  3.6  2.0 623124 162464 tty7    Ssl+ 22:46   0:17 /usr/lib/xorg/Xorg -core :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch
ionut     2810  2.8  1.2 1005224 98508 ?       Ssl  22:46   0:13 compiz
ionut     3232  0.0  0.6 879364 50680 ?        Sl   22:46   0:00 /usr/lib/evolution/evolution-calendar-factory
mysql     6267  2.6  0.6 550068 48648 ?        Ssl  22:54   0:00 /usr/sbin/mysqld
ionut     3115  0.1  0.5 1358024 46932 ?       Sl   22:46   0:00 nautilus -n
root      4351  0.3  0.5 526508 46888 ?        Ssl  22:46   0:01 /usr/bin/dockerd --raw-logs
ionut     3084  0.0  0.5 614568 42808 ?        Sl   22:46   0:00 /usr/bin/python3 /usr/bin/indicator-stickynotes
ionut     2801  0.0  0.4 646080 35132 ?        Ssl  22:46   0:00 /usr/lib/x86_64-linux-gnu/hud/hud-service
ionut     4761  1.4  0.3 616304 31388 ?        Sl   22:47   0:06 gnome-terminal

これらのプロセスで使用されるRAMは、free -m出力に表示される使用済みRAMに追加されないようです。

1
Narcis Neacsu

すべてが大丈夫です。間違った値を見ているだけです。

アプリケーションが「実際に使用する」のは645 MB RAM(-/ + b/c:使用済み)と7197 MB(-/ + b/c:無料)のみがアプリケーションで引き続き使用できます。

2443 MB(Mem:使用済み)は、システムが使用しているRAM)の合計ですが、たとえば、必要に応じて、アプリケーションのためにすぐに削除できるディスクキャッシュやその他のものを含みます。これらの種類のキャッシュは、アプリケーションで使用できるRAMの量に影響を与えることなく、ディスクアクセスなどを高速化します。

一方、5398 MB(Mem:free)は本当に未使用です。現在は役に立たないと言うこともできます。

詳細は https://www.linuxatemyram.com/ にもあります。

2
Byte Commander