Другой вариант Perl, использующий List ::Util
$ perl -MList::Util=uniq -alne '
map { $h{$_}++ } uniq @F }{ for $k (sort keys %h) {print "$k: $h{$k}"}
' file
0: 1
1: 1
2: 1
a: 1
different: 1
hello: 1
is: 3
man: 2
one: 1
possible: 1
the: 3
this: 1
world: 2
Судя по предоставленной вами информации, у вас действительно есть tmpfs
файловые системы, смонтированные в /tmp
и /dev/shm
, которые не отображаются top
или другими подобными утилитами.
Пожалуйста, следите за использованием этих точек монтирования через df
и очищайте данные или останавливайте приложения, записывающие данные в них. Некоторые приложения создают файлы и сразу их удаляют, и такие файлы все равно занимают место. Их нельзя увидеть напрямую через, например. ls
или df
, но вы можете найти их так:
sudo lsof -n | egrep "/tmp|/dev/shm" | grep deleted
Так как это уже 20-й раз, когда я вижу этот вопрос, я пошел дальше и отправил отчеты об ошибках top
, free
и htop
:
Если проблема связана с 9 ГБ используемой памяти, запустите top и перечислите процессы по %MEM.
Совершенно нормально. Linux, Windows и большинство других операционных систем любят кэшировать все, что могут. Память используется, но не привязана к этому содержимому. Его можно освободить и заменить чем-то другим так же быстро, как считывается диск.
Вы должны увидеть много свободной памяти только тогда, когда большой процесс (или набор коллективно больших процессов )только что закончились.