tmpfsが分からない

$ df -h
Filesystem          サイズ  使用  残り 使用% マウント位置
(略)
tmpfs                 8.0G  5.0G  3.1G  62% /dev/shm
(略)
$ free -m
             total       used       free     shared    buffers     cached
Mem:          3952       3855         97          0        300       2506
-/+ buffers/cache:       1048       2904
Swap:         5951       3299       2652

なぜこういう状況になるんだろうか... tmpfsで 5 GB 使ってるのに,メモリとスワップ合わせて (1048 + 3299) / 1024 = 4.2 GB っておかしくないか.なおGCCのソースやコンパイルしたバイナリとかが入ってるので疎なファイルはないはず.