一、Swap
1. 概述
l 会使用swap的页:inactive pagess(脏页)和anonymous pages匿名页。
l swap ache:放在swap页未被修改过;多进程访问同一个页帧时,防止发生混乱,将其写到swap cache
l swap慢的原因:swap太小;swap匿名页更新太快.
l 查看swap回收情况
[root@station10 ~]# vmstat 3
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 7187336 208524 559220 0 0 0 1 10 10 0 0 100 0 0
0 0 0 7187336 208524 559220 0 0 0 0 1017 84 0 0 100 0 0
0 0 0 7187336 208524 559220 0 0 0 21 1014 83 0 0 100 0 0
#si:swap in 将内存中信息放到swap中
#so:swap on 将swap中信息放到内存中
2. 提升swap性能的办法
l 将虚拟机的domnU分独立VBD(虚拟块设备)做swap,将虚拟机放在不同的磁盘上。
l 将swap分布在多个设备上,最多32个LUMS(逻辑单元号)即分配在多个不同的分区或磁盘上(要调整swap优先级)。
l 尽量保证swap优先级相同,以保证swap轮询使用,内核会优先使用高优先级的swap分区。
l 尽量使用分区,不要使用文件作为swap。
l 尽量不要将swap放在慢的设备上。
3. Tuning swappiness
搜索inactive pages会消耗过多的cpu和IO资源,需要tuninig swappiness。
l 调整匿名页
vm.swappiness
[root@station10 ~]# sysctl -a|grep vm.swappiness
vm.swappiness = 60
#是否更倾向于使用swap,越大越优先使用swap,越小越优先使用cache。范围0~100。
调整时注意要求:% of memory mapped into page tables+vm.swappiness >=100
4. Tuning swap size
l 注意事项
Ø 内核会在zone_normal中使用2 bytes来跟踪swap里的每个页
Ø 内存交换速度要比磁盘IO更强的话,会导致swaplock,尽量避免swaplock。
Ø 如果内存不足,内核会kill用户进程。
l Tuning方针
Ø 服务器有大量运算:swap > 4xRAM
Ø Database server:swap <= 1GiB
Ø Application server:swap >=0.5xRAM
#同时也考虑如下方针
RAM=1~2G swap = 1.5xRAM
2~8G swap = 1RAM
>8G swap = 0.7xRAM
5. Tuning swap for think time
l swap小量使用
vm.page.cluster
[root@station9 ~]# sysctl -a |grep vm.page.cluster
vm.page-cluster = 3
#一次性性从swap往内存写的页数,2的3次方
l 写入swap的延迟(多久往swap写一次)
vm.sap_token_timeout
[root@station10 ~]# sysctl -a|grep vm.swap_token_timeout
vm.swap_token_timeout = 300
#秒,默认300秒
6. Tuning swap(创建swap)
l 最多可创建32个swap
l 创建swap
mkswap -L myswap /dev/sdb1 #-L:swap名
l 指定swap优先级在/etc/fstab中调整
/dev/sda1 swap swap pri=3 0 0
LABEL=myswap swap swap pri=3 0 0
/dev/sdc1 swap swap pri=3 0 0
/var/swapfile swap swap pri=1 0 0
#pri越大越优先使用
l activate swap
swapon -a
l 查看活动的swap分区
cat /proc/swaps
swapon –s
二、 监控内存使用情况
1. 查看内存activity
vmstat -n 1 30
sar -r 1 30
[root@www ~]# sar -r 1 30
Linux 2.6.18-194.el5PAE (www.tuango163.com) 2011年08月30日
06时53分27秒 kbmemfree kbmemused %memused kbbuffers kbcached kbswpfree kbswpused %swpused kbswpcad
06时53分28秒 2847760 1304008 31.41 165536 982312 8385920 0 0.00 0
06时53分29秒 2847760 1304008 31.41 165536 982312 8385920 0 0.00 0
2. rate of change in memory
sar -R 1 30 #每秒一次,30次
[root@www ~]# sar -R 1 30
Linux 2.6.18-194.el5PAE (www.tuango163.com) 2011年08月30日
06时52分57秒 frmpg/s bufpg/s campg/s
06时52分58秒 0.00 0.00 0.00
3. swap activity
sar -W 1 30
[root@www ~]# sar -W 1 30
Linux 2.6.18-194.el5PAE (www.tuango163.com) 2011年08月30日
06时54分13秒 pswpin/s pswpout/s
06时54分14秒 0.00 0.00
06时54分15秒 0.00 0.00
4. All IO
sar -B 1 30
[root@www ~]# sar -B 1 30
Linux 2.6.18-194.el5PAE (www.tuango163.com) 2011年08月30日
06时55分04秒 pgpgin/s pgpgout/s fault/s majflt/s
06时55分05秒 0.00 0.00 14.00 0.00
06时55分06秒 0.00 44.00 23.00 0.00