Вот в вашем выводе free видно:
total used free shared buff/cache available
Mem: 988 292 135 38 561 617
Что имеются всякие кеши и они отъели место. Скорее всего FS на сервере ext4 и она умеет кешировать и делает это.
Если после
# echo 3 > /proc/sys/vm/drop_caches
У вас освободится памяти раза в 2 больше чем свопа, то можно будет сделать вот так:
# swapoff -a && swapon -a
И если в итоге все прокатило - значит дело ровно в том что у Вас много мелких файлов которые файловая система кеширует.
Оптимизировать в данном случае нужно php (обычно беды из за него), включить и настроить opcache например...