root@ubuntu:~# cd /var/
    root@ubuntu:/var# dd if=/dev/zero of=swapfile bs=1024 count=2096176
    2096176+0 records in
    2096176+0 records out
    2146484224 bytes (2.1 GB, 2.0 GiB) copied, 7.05169 s, 304 MB/s
    root@ubuntu:/var# mkswap swapfile
    mkswap: swapfile: insecure permissions 0644, 0600 suggested.
    Setting up swapspace version 1, size = 2 GiB (2146480128 bytes)
    no label, UUID=f22fba5b-b886-49eb-beb7-d306b43fa8e3
    root@ubuntu:/var# swapon swapfile
    swapon: /var/swapfile: insecure permissions 0644, 0600 suggested.
    root@ubuntu:/var# vim /etc/fstab
    root@ubuntu:/var# top
    top - 23:13:14 up 3:00, 4 users, load average: 0.23, 1.90, 1.91
    Tasks: 130 total, 2 running, 84 sleeping, 0 stopped, 0 zombie
    %Cpu(s): 2.3 us, 0.7 sy, 0.0 ni, 96.3 id, 0.0 wa, 0.0 hi, 0.7 si, 0.0 st
    KiB Mem : 2017296 total, 80040 free, 449284 used, 1487972 buff/cache
    KiB Swap: 2096172 total, 2096160 free, 12 used. 1379648 avail Mem
    PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
    20472 acunetix 20 0 316632 84928 7640 S 4.7 4.2 7:34.55 opsrv
    638 syslog 20 0 263036 4396 2836 S 0.3 0.2 0:02.39 rsyslogd
    20465 acunetix 20 0 210444 9084 8212 S 0.3 0.5 0:00.14 postgres
    28255 acunetix 20 0 212848 15200 12440 R 0.3 0.8 0:01.42 postgres

    1. 一般在各个云产商购买的云服务器都是不会给我们添加虚拟内存。
    2. 例如通过阿里云安装的系统,不会自动给我们分配swap虚拟内存空间;Swap分区或虚拟内存文件,是在系统物理内存不够用的时候,由系统内存管理程序将那些很长时间没有操作内存数据,临时保存到Swap分区虚拟内存文件中,以提高可用内存额度的一种机制。当那些程序要再次重新运行时,会再从Swap分区或虚拟内存文件中恢复之前保存的数据到内存中。
    3. 在升级服务器配置前,就先给系统加上一块1GB大小的虚拟内存,防止Linux大开杀戒。
    4. cd /var/
    5. dd if=/dev/zero of=swapfile bs=1024 count=1048576 #创建大小为1G的文件swapfile
    6. #count的计算公式: count=SIZE*1024 (size以MB为单位)
    7. mkswap swapfile #格式化虚拟内存文件
    8. swapon swapfile #激活虚拟内存文件
    9. 再编辑自动挂载文件,让系统开机的时候自动加载虚拟内存文件
    10. vi /etc/fstab
    11. 添加如下代码
    12. /var/swapfile swap swap defaults 0 0
    13. PS:相关操作会导致额外的IO开销,特别是,如果内存使用率已经非常高,而同时IO性能也不是很好的情况下,该机制其实会起到相反的效果:不仅系统性能提升较小(因为内存使用率已经非常高了),而且由于频繁的内存到SWAP的切换操作,会导致产生大量额外的IO操作,导致IO性能进一步降低,最终反而降低了系统总体性能。