一、查看文件夹大小du
du -h -d1 2>/dev/null
解释:
- h表示以可读性较好的方式显示,即带单位显示
- d表示深度depth,为1表示只显示当前目录下文件的大小
2>/dev/null
,表示跳过那些不可读的文件
使用find命令也能够查看文件大小,但是比较复杂
find / -size +100M |xargs ls -lh
列出系统内大于100M的文件,这个命令比较耗时
du -h --max-depth=1
查看当前目录内文件夹的大小。这种方式最好了。在最近做出更改的目录下使用此命令可以快速定位大文件的位置。
二、查看磁盘大小df
df -h 查看磁盘空间占用,实际上是查看磁盘块占用的文件(block)
df -i 查看索引节点的占用(Inodes)
磁盘块和索引节点其中之一满,都会导致无法创建文件,提示磁盘空间已满。
所以请注意,查看磁盘还有空间,但是创建文件提示空间满,可能是inodes节点已满
三、查看内存使用情况free
watch free:查看每时每刻内存变化情况
三、创建交换区makeswap
问题:virtual memory exhausted: Cannot allocate memory
内存太小的解决办法:使用硬盘替代内存,交换区的存在使得内存空间可以和硬盘空间一样大。
free先查看一下,可以发现交换区大小为0
~$free
total used free shared buffers cached
Mem: 1017832 784328 233504 356 12844 14692
-/+ buffers/cache: 756792 261040
Swap: 0 0 0
使用dd命令从/dev/zero中读取全0初始化一个文件,这个文件名可以名叫swap,相当于一个交换区的名字。使用free显示的空间大小单位都是kB,也就是block的个数,一个磁盘块的大小默认是1024B。正常情况下,4G内存才够用,所以建议减缓区大小为4096000。
~$dd if=/dev/zero of=swap bs=1024 count=1024000
1024000+0 records in
1024000+0 records out
1048576000 bytes (1.0 GB) copied, 6.30189 s, 166 MB/s
查看一下swap空间的大小
~$ll swap
-rw-rw-r-- 1 ubuntu ubuntu 1048576000 Oct 18 02:48 swap
交换区已经准备好了,下一步就等着让它生效了。首先要在这块空间上建立分块。
~$mkswap swap
Setting up swapspace version 1, size = 1023996 KiB
no label, UUID=1372d681-b265-469b-8d9d-d637cbedbef7
交换区终于可以投入使用了。
~$sudo swapon swap
~$free -h
total used free shared buffers cached
Mem: 1017832 947088 70744 356 1692 189112
-/+ buffers/cache: 756284 261548
Swap: 1023996 0 1023996
运行着发现交换区太小了,需要进一步扩大,一方面可以重复以上步骤重建另一个交换区,另一方面可以在当前这个交换区的基础上先shutdown然后在重复上述步骤。
~$sudo swapoff swap
~$free
total used free shared buffers cached
Mem: 1017832 947844 69988 356 1744 189728
-/+ buffers/cache: 756372 261460
Swap: 0 0 0
综上,创建一个名为swap的文件作为交换区。首先要设置该文件的大小,使用dd文件复制命令从if复制到of,复制count次,每次复制bs大小的空间。然后将swap文件格式化为交换区,使用"mkswap 文件名"命令,该命令会是swap文件腾出4*1024B
(即为4页)的空间专门作为交换区头部。最后"swapon 文件名"命令打开交换区,此时查看内存就能够看见swap区的大小了。不想用交换区之后,用swapoff关闭交换区,关闭之后就可"rm swap"删除交换区了.