Linux суулгах явцдаа диск хуваарилалтыг автоматаар үргэлжлүүлсэн тохиолдолд swap-ийг автоматаар үүсгэх бөгөөд сүүлд санах ой нэмэх , бааз үүсгэх үед санах ойтой холбоотой алдаанууд гардаг. Уг хэмжээсийг файл болон partition хэлбэрээр ихэсгэж болох бөгөөд энэ удаад partition буюу шинэ диск ашиглан хэрхэн нэмэгдүүдэх талаар танилцуулъя.
Одоогийн хэмжээг ашиглах
[root@rac-node01 ~]$ swapon -s
Filename Type Size Used Priority
/dev/dm-1 partition 2097148 0 -1
[root@rac-node01 ~]$
Дээрхээс харахад 2ГБ хэмжээтэй байна.
swap-д зориулж 12гб хэмжээ бүхий /dev/sdp дискийг оруулж ирсэн байгаа бөгөөд түүнд swap partition үүсгэе.
[root@rac-node01 ~]$ fdisk /dev/sdp
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x0a4eea44.
Command (m for help): p
Disk /dev/sdp: 12.9 GB, 12884901888 bytes, 25165824 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0a4eea44
Device Boot Start End Blocks Id System
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
Partition number (1-4, default 1):
First sector (2048-25165823, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-25165823, default 25165823):
Using default value 25165823
Partition 1 of type Linux and of size 12 GiB is set
Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 82
Changed type of partition 'Linux' to 'Linux swap / Solaris'
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@rac-node01 ~]$
Ямар volume group, logical volume байгааг харцгаая
[root@rac-node01 ~]$ vgs
VG #PV #LV #SN Attr VSize VFree
ol 2 3 0 wz--n- 62.99g 0g
[root@rac-node01 ~]$
[root@rac-node01 ~]$ lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
home ol -wi-ao---- 16.07g
root ol -wi-ao---- 32.92g
swap ol -wi-ao---- 2.00g
[root@rac-node01 ~]$
ol нэртэй volume group -ийн хэмжээг ихэсгэе
[root@rac-node02 ~]$ swapoff -a
[root@rac-node01 ~]$ vgextend ol /dev/sdp1
Volume group "ol" successfully extended
[root@rac-node01 ~]$
[root@rac-node01 ~]$ vgs
VG #PV #LV #SN Attr VSize VFree
ol 2 3 0 wz--n- 62.99g 12.00g
[root@rac-node01 ~]$
swap -ийн хэмжээг одоо ихэсгэе
[root@rac-node01 ~]$ swapoff -v /dev/mapper/ol-swap
swapoff /dev/mapper/ol-swap
[root@rac-node01 ~]$ lvextend -l +100%FREE -r /dev/mapper/ol-swap
fsck from util-linux 2.23.2
Size of logical volume ol/swap unchanged from 14.00 GiB (3584 extents).
Logical volume ol/swap successfully resized.
[root@rac-node01 ~]$
[root@rac-node01 ~]$ vgs
VG #PV #LV #SN Attr VSize VFree
ol 2 3 0 wz--n- 62.99g 0
[root@rac-node01 ~]$ mkswap /dev/mapper/ol-swap
mkswap: /dev/mapper/ol-swap: warning: wiping old swap signature.
Setting up swapspace version 1, size = 14680060 KiB
no label, UUID=fa794373-8b88-4af1-a107-ba9126578d95
[root@rac-node01 ~]$ swapon -va
swapon /dev/mapper/ol-swap
swapon: /dev/mapper/ol-swap: found swap signature: version 1, page-size 4, same byte order
swapon: /dev/mapper/ol-swap: pagesize=4096, swapsize=15032385536, devsize=15032385536
[root@rac-node01 ~]$ cat /proc/swaps
Filename Type Size Used Priority
/dev/dm-1 partition 14680060 0 -1
[root@rac-node01 ~]$
Дээрх үр дүнгээс хэмжээ өөрчлөгдсөн нь харагдаж байна.
SWAP -д зориулсан Swappiness параметр нь 0-100 гэсэн утгыг авах бөгөөд 100 руу дөхөх тусам санах ойд зай үлдээж swap файлыг ашиглана гэсэн үг юм.
Тиймээс swap хэр ашиглахыг тохируулж болно.
[root@rac-node01 ~]$ cat /proc/sys/vm/swappiness
30
[root@rac-node01 ~]$
[root@rac-node01 ~]$ sysctl vm.swappiness=20
vm.swappiness = 20
[root@rac-node01 ~]$ cat /proc/sys/vm/swappiness
20
[root@rac-node01 ~]$
Сервер унтарч асахад уг тохиргоог идэвхтэй байлгахын тулд /etc/sysctl.conf файлд дараах мөрийг нэмж өг.
vm.swappiness = 10
Дараагийн тохируулах тохиргоо бол sysctl vm.vfs_cache_pressure=50 юм. Энэ нь дистэй холбоотой метадата мэдээллийг cache-д хэр удаан хадгалахыг тодорхойлно. 100 руу дөхөх тусам cache бараг хэрэглэхгүй учир шаардлагатай мэдээллийг дуудахад тодорхой хэмжээний ачаалал өгч байна гэсэн үг юм.
[root@rac-node01 ~]$ cat /proc/sys/vm/vfs_cache_pressure
100
[root@rac-node01 ~]$ sysctl vm.vfs_cache_pressure=50
vm.vfs_cache_pressure = 50
[root@rac-node01 ~]$