質問: linux:どのプロセスがすべてのramを使用しているのか調べますか? 実際に尋ねる前に、明確にするために:はい、私はディスクキャッシュについて知っています、そして、いいえ、それは私の場合ではありません:)申し訳ありません、この前文:)について私はcentos 5を使用しています。システム内のすべてのアプリケーションは頻繁にスワップしており、システムは非常に低速です。 free -mを実行すると、次のようになります。 total used free shared buffers cached mem: 3952 3929 22 0 1 18 -/+ buffers/cache: 3909 42 swap: 16383 46 16337 だから、私は実際に使用するには42メガバイトしかありません!私が理解している限りでは、-/+ buffers/cacheは実際にはディスクキャッシュを数えないので、私は確かに42 mbしか持っていませんね。私は間違っているかもしれないと思ったので、私はディスクキャッシュをオフにしようとしました、そしてそれは効果がありませんでした - 絵は同じままだった。それで、私はだれが私のramをすべて使っているかを調べることにしました、そして私はそれのためにtopを使いました。しかし、どうやらそれは私のramを使用しているプロセスがないことを報告しています。私のトップにある唯一のプロセスはmysqlですが、それは0.1%のramと400mbのスワップを使用しています。私が他のサービスやアプリケーションを実行しようとしたときの同じ画像 - すべてがスワップに入る、topはmemが使われていないことを示します(どのプロセスでも最大0.1%)。top - 15:09:00 up 2:09, 2 users, load average: 0.02, 0.16, 0.11 tasks: 112 total, 1 running, 111 sleeping, 0 stopped, 0 zombie cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st mem: 4046868k total, 4001368k used, 45500k free, 748k buffers swap: 16777208k total, 68840k used, 16708368k free, 16632k cached pid user pr ni virt res shr s %cpu %mem time+ swap command 3214 ntp 15 0 23412 5044 3916 s 0.0 0.1 0:00.00 17m ntpd 2319 root 5 -10 12648 4460 3184 s 0.0 0.1 0:00.00 8188 iscsid 2168 root rt 0 22120 3692 2848 s 0.0 0.1 0:00.00 17m multipathd 5113 mysql 18 0 474m 2356 856 s 0.0 0.1 0:00.11 472m mysqld 4106 root 34 19 251m 1944 1360 s 0.0 0.0 0:00.11 249m yum-updatesd 4109 root 15 0 90152 1904 1772 s 0.0 0.0 0:00.18 86m sshd 5175 root 15 0 90156 1896 1772 s 0.0 0.0 0:00.02 86m sshd 再起動は役に立ちません、そして、彼らは非常に遅いです、私は通常このマシン(4コア、4gbのram、)を期待していないでしょraid1)。それで、これで - これはramを使用しているディスクキャッシュではないと確信しています。だから、最後に、問題は、誰かがどのプロセスが実際にメモリを実際に非常に頻繁に使用しているかを見つける方法を何か考えがあるのであれば - です。
回答: hyper-v上のubuntuサーバーdistrib release = 18.04では、ほとんどのメモリが使用されましたが、すべてのプロセスは正常でした。 (snapdおよびunattended-upgrパッケージを削除したことは認めましたが、メモリの95%はまだ使用されていました。)答えは、hyper-vには動的メモリがあるため、メインシステムで使用するためにメモリを使用し、ubuntuが使用済みとしてフラグを立てたということです。それが誰かを助けることを願っています。