Sun 8 Jul 2007
ช่วงนี้วุ่นวายอยู่กับ Single Board Computer หรือ SBC มาพักใหญ่จนเอา Debian ไปยัดใส่ให้มันทำงานได้แล้ว SBC ที่ผมเอามาเล่นคือรุ่น TS-7200 ที่เคยเขียนถึง การใช้งาน debian บน SBC ที่มี ARM9 เป็น CPU ก็ถือว่าทำได้ดีในงานที่ต้องการขนาดระบบที่เล็ก แต่ผมดันลืมทำ swap ให้มันซะนี่
การทำ swap ส่วนใหญ่ผมจะเข้าใจว่าต้องทำโดยการแบ่งพาติชั่นเป็นหลัก และครั้งนี้ลืมไปเลยว่าต้องทำ swap ด้วย จนเอามาใช้งานก็ติดๆขัดๆเรื่องของ memory บ่อยอยู่เหมือนกัน ทีแรกว่าจะ fdisk ใหม่แต่ก็กลัวพลาด (เป็นบ่อย) เลยหาวีธีเซฟๆหน่อย
เลยได้เป็นการทำ swap file ไม่ต้องทำเป็น swap patition เริ่มการทำเลย
1. ก่อนอื่นต้องสร้าง block ขึ้นมาใน harddisk หรือ compact flash ขนาดก็ดูจาก memory หลักคูณด้วยสอง SBC ผมมีRAM ขนาด 32 MB ผมก็สร้าง swap file ขนาด 64 MB ด้วยคำสั่ง dd ดังนี้
# dd if=/dev/zero of=/swapfile bs=1024 count=64k # mkswap /swap Setting up swapspace version 1, size = 67104 kB no label, UUID=7cde6930-7f70-44ac-8f96-d847f20a7b0b
2. เริ่มการใช้งาน swap file ที่สร้างขึ้น
# swapon /swap Adding Swap: 65528k swap-space (priority -1)
3. ตรวจดูการใช้งานของ swap file ที่สร้างขึ้น
# cat /proc/swaps Filename Type Size Used Priority /swap file 65528 0 -1
หรือใช้คำสั่ง top
top - 22:27:45 up 1 day, 8:01, 3 users, load average: 0.00, 0.00, 0.15 Tasks: 24 total, 1 running, 22 sleeping, 1 stopped, 0 zombie Cpu(s): 0.7% user, 1.0% system, 0.0% nice, 98.4% idle Mem: 28572k total, 27632k used, 940k free, 348k buffers Swap: 65528k total, 0k used, 65528k free, 19068k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 23959 root 17 0 1048 1048 844 R 1.6 3.7 0:00.24 top 1 root 8 0 144 144 92 S 0.0 0.5 0:01.40 init 2 root 9 0 0 0 0 S 0.0 0.0 0:00.08 keventd 3 root 19 19 0 0 0 S 0.0 0.0 0:00.01 ksoftirqd_CPU0 4 root 9 0 0 0 0 S 0.0 0.0 1:15.98 kswapd 5 root 9 0 0 0 0 S 0.0 0.0 0:00.00 bdflush 6 root 9 0 0 0 0 S 0.0 0.0 0:00.23 kupdated 7 root 9 0 0 0 0 S 0.0 0.0 0:00.00 mtdblockd 122 root 9 0 0 0 0 S 0.0 0.0 0:00.00 khubd 254 daemon 9 0 124 124 48 S 0.0 0.4 0:00.02 portmap 338 root 9 0 112 112 52 S 0.0 0.4 0:00.05 inetd 346 root 8 0 324 320 204 S 0.0 1.1 0:00.06 sshd 359 root 9 0 140 140 52 S 0.0 0.5 0:00.05 rpc.statd 370 root 8 0 332 332 168 S 0.0 1.2 0:00.47 cron 426 root 9 0 300 300 52 S 0.0 1.0 0:00.11 login 427 root 9 0 868 868 584 S 0.0 3.0 0:00.15 bash 575 root 9 0 632 624 340 S 0.0 2.2 0:15.45 sshd 576 root 9 0 296 296 52 S 0.0 1.0 0:00.10 login 577 root 8 0 816 816 504 S 0.0 2.9 0:01.59 bash 903 root 9 0 628 620 340 S 0.0 2.2 0:01.40 sshd 925 root 9 0 296 296 52 S 0.0 1.0 0:00.09 login 926 root 9 0 1232 1232 672 S 0.0 4.3 0:00.27 bash 14986 root 9 0 1560 1560 52 T 0.0 5.5 0:01.70 zip 30177 root 9 0 260 260 184 S 0.0 0.9 0:00.22 syslogd
ถ้าได้อย่างนี้แล้วก็คือใช้งานได้แล้ว
4. สุดท้ายเอาไปเพิ่มไว้ไนไฟล์ fstab เพื่อให้ใช้งานได้เองหลังจากบูทเครื่องทุกครั้ง
proc /proc proc defaults 0 0 none /dev/pts devpts gid=5,mode=620 0 0 /swap none swap sw 0 0 /dev/sdcard0/disc0/part3 / ext2 defaults,noatime,sync 1 1
คอมเม้นท์ล่าสุด