转:Ubuntu 优化 swap 交换分区及调整swap大小 以及查看目录占用空间

优化swap参数

在 ubuntu 里面,swappiness的值的大小对如何使用swap分区是有着很大的联系的。swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。两个极端,对于 ubuntu的默认设置,这个值等于60,建议修改为10。具体这样做:

1.查看你的系统里面的swappiness
$ cat /proc/sys/vm/swappiness
不出意外的话,你应该看到是 60
2.修改swappiness值为10
$ sudo sysctl vm.swappiness=10
但是这只是临时性的修改,在你重启系统后会恢复默认的60,所以,还要做一步:
$ gksudo gedit /etc/sysctl.conf
在这个文档的最后加上这样一行:
vm.swappiness=10
然后保存,重启。ok,你的设置就生效了。你会发现,现在乌斑兔儿跑得更快了!
当然,你可以用其他编辑器进行修改,如kate,vi,vim,nano……只需要把gedit替换成它们就ok了!因为考虑到大多数人都用的gnome 桌面,就写的gedit。
调整swap分区大小
顺便说一下磁盘管理:
查 看硬盘剩余空间 $df -h 或 $df -H
查看目录占用空间 $du -hs 目录名
清 理旧版本的软件缓存 $sudo apt-get autoclean
清理所有软件缓存$sudo apt-get clean
删除系统不再使用的孤立软件$sudo apt-get autoremove
结 果我的E盘
Filesystem Size Used Avail Use% Mounted on
/dev/loop0 29G 17G 11G 63% /
udev 4.0G 236K 4.0G 1% /dev
none 4.0G 500K 4.0G 1% /dev/shm
none 4.0G 324K 4.0G 1% /var/run
none 4.0G 0 4.0G 0% /var/lock
none 4.0G 0 4.0G 0% /lib/init/rw
/dev/sda6 124G 64G 61G 52% /host
扩展swap
1.首先用命令free查看系统内 Swap 分区大小。
free -mtotal used free shared buffers cached
Mem: 1002 964 38 0 21 410
-/+ buffers/cache: 532 470
Swap: 951 32 929

可以看到 Swap 只有951M,不符合 Oracle-xe-client 的安装要求。

2.创建一个 Swap 文件。
mkdir swap
cd swap
sudo dd if=/dev/zero of=swapfile bs=1024 count=100000

出现下列提示,上面命令中的 count 即代表swap文件大小。

记录了 100000+0 的读入
记录了 100000+0 的写出
102400000 字节 (102 MB) 已复制,0.74704 秒,137 MB/秒

把生成的文件转换成 Swap 文件
sudo mkswap swapfile

Setting up swapspace version 1, size = 102395 kB
no label, UUID=09fde987-5567-498a-a60b-477e302a988b

3.激活 Swap 文件。
sudo swapon swapfile

再次查看 free -m 的结果。

total used free shared buffers cached
Mem: 1002 967 34 0 22 410
-/+ buffers/cache: 534 467
Swap: 1053 32 1021

添加成功。

扩展:
如果需要卸载这个 swap 文件,可以进入建立的 swap 文件目录。执行下列命令。
sudo swapoff swapfile

************************************************
要重新激活swap分区,你需要先用分区格式工具分出一个swap分区,并记下分区编号。然后在终端下操作:
sudo mkswap /dev/hdaX #X是swap分区的编号,千万别把编号弄错了,否则会死得很难看:)
把产生的UUID序列号记下来。
打开/etc/fstab,把SWAP分区的UUID序列号修改过来。

重新启动系统,会自动激活swap分区。

————————————-

查询分区UUID值可以使用下面的命令:
ls -al /dev/disk/by-uuid

结果是如下的形式:

总用量 0

drwxr-xr-x 2 root root 100 2007-04-06 20:09 .
drwxr-xr-x 5 root root 100 2007-04-06 20:09 ..
lrwxrwxrwx 1 root root 10 2007-04-06 20:09 1bfc17a2-b39c-451b-8ce8-2b3bc13bf6e8 -> ../../sda6
lrwxrwxrwx 1 root root 10 2007-04-06 20:09 6286feb3-3037-4893-b0f1-8c9edba3c447 -> ../../sda1
lrwxrwxrwx 1 root root 10 2007-04-06 20:09 8c6640b5-9c65-44d7-8f09-771b8c589922 -> ../../sda5