記一次分配虛擬內存的經歷

在阿里雲上買了臺1G內存,單核的雲服務器平時玩玩,和朋友一起開發幾個小項目。在某次同時運行Jenkins和幾個網站的情況下,在Centos系統運行yum install git,yum報出了一個內存不足的錯,而且系統確實也是卡卡的。

  1. 查看linux內存
    命令free和top都可以查看內存情況。free查看的摯友內存信息,top則就像windows裏的控制面板。
    除此之外,/proc/meminfo文件也記錄有內存情況
[root@~]# free -m
              total        used        free      shared  buff/cache   available
Mem:            992         765          71           0         155          81
Swap:             0           0           0
[root@iZbp1aiejzadfq9do06acaZ ~]# top

top - 21:42:15 up 21:46,  1 user,  load average: 0.00, 0.01, 0.05
Tasks:  61 total,   2 running,  59 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.7 us,  0.0 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1016412 total,    72560 free,   783892 used,   159960 buff/cache
KiB Swap:  1048572 total,   821984 free,   226588 used.    82828 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                 
 9338 root      20   0 2608740 678916   6392 S  0.3 66.8  11:17.35 java                    
  892 mysql     20   0 1146768  37060   5240 S  0.0  3.6   0:24.99 mysqld                  
18361 root      20   0  143388   5420   4136 S  0.0  0.5   0:00.05 sshd                    
  893 root      20   0  124076   5116   1948 S  0.0  0.5   2:19.63 AliYunDun               
  333 root      20   0   45008   3324   3204 S  0.0  0.3   0:00.35 systemd-journal         
18366 root      20   0  115516   2192   1684 S  0.0  0.2   0:00.02 bash                    
18671 root      20   0  157576   2136   1536 R  0.0  0.2   0:00.00 top        
[root@iZbp1aiejzadfq9do06acaZ ~]# cat /proc/meminfo 
MemTotal:        1016412 kB
MemFree:           72528 kB
MemAvailable:      83164 kB
Buffers:           17004 kB
Cached:           110144 kB
SwapCached:        46080 kB
Active:           432064 kB
Inactive:         452212 kB
Active(anon):     369412 kB
Inactive(anon):   387764 kB
Active(file):      62652 kB
Inactive(file):    64448 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       1048572 kB
...

2.分配虛擬內存
萬萬沒想到,阿里雲默認是不分配虛擬內存的。只能自己動手分配了。
虛擬內存swap的概念就不細說了,需要提的一點是,虛擬內存搞起來就是個文件!!大概的操作就是,劃出一塊空閒硬盤空間用來創建一個文件,這個文件一般放在/swap目錄下,然後執行mkswap命令,這個文件就變成swap了,swapon命令使swap生效,reboot重啓分配虛擬內存就完成了。

將/dev/vda1的1024*1024000byte空間,分配到/swap/swap文件。

[root@iZbp1aiejzadfq9do06acaZ ~]# df
文件系統          1K-塊    已用     可用 已用% 掛載點
/dev/vda1      41152832 6738928 32300420   18% /
devtmpfs         498536       0   498536    0% /dev
tmpfs            508204       0   508204    0% /dev/shm
tmpfs            508204     328   507876    1% /run
tmpfs            508204       0   508204    0% /sys/fs/cgroup
tmpfs            101644       0   101644    0% /run/user/0
dd if=/dev/vda1 of=/swap/swap bs=1024 count=1024000

創建linux交換文件

mkswap /swap/swap

立即激活/swap/swap交換文件

swapon /swap/swap

重啓系統

reboot
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章