g++: internal compiler error: Killed (program cc1plus)解決辦法

當編譯android系統或者linux系統源碼時,報錯:

g++: internal compiler error: Killed (program cc1plus)

Please submit a full bug report

問題原因

這是因爲編譯系統內存不足導致的,常出現在本地電腦建的編譯環境,可以使用交換分區的方式解決

快速方法

sudo dd if=/dev/zero of=/mnt/swapfile bs=128M count=126
#count的大小就是增加的swap空間的大小,128M是塊大小,所以空間大小是bs*count=16GB
sudo mkswap /mnt/swapfile
#把剛纔空間格式化成swap格式
sudo swapon /mnt/swapfile
#使用剛纔創建的swap空間

詳細步驟

swap簡介:swap交換空間實際上是一個磁盤分區,在安裝操作系統時,默認劃分出物理內存的1~2倍空間用於交換分區,它類似於 Windows 的虛擬內存。系統會把一部分硬盤空間虛擬成內存使用,將系統內非活動內存換頁到 SWAP,以提高系統可用內存。

阿里雲ECS服務器的swap功能默認時沒有開啓的,因爲swap功能會增加磁盤IO的佔用率,降低磁盤壽命和性能,另一方面也可以藉此讓用戶購買更大的內存。啓用swap分區,一定程度上可以降低物理內存的使用壓力,但如果雲服務器上運行的應用確實需要更多的內存,還是需要購買物理內存。

啓用swap分區步驟如下:

1、查看是否啓用swap分區
# free -m
# cat /proc/swaps

 

2、如果未啓用swap分區功能,則新建一個專門的文件用於swap分區

# dd if=/dev/zero of=/mnt/swap bs=block_size count=number_of_block

注:block_size、number_of_block 大小可以自定義,比如 bs=1M count=1024 代表設置 1G 大小 SWAP 分區

 

3、設置交換分區文件

通過mkswap命令將上面新建出的文件做成swap分區

# mkswap /mnt/swap

注:mkswap時如果出現如下錯誤,是因爲SWAP 文件太小,SWAP 文件至少應該大於 40KB,重新執行上一步驟生成更大的文件即可

mkswap: error: swap area needs to be at least 40 KiB

 

4、修改內核參數 /proc/sys/vm/swappiness 

當 swappiness爲 0 時,表示最大限度的使用物理內存,物理內存使用完畢後,纔會使用 SWAP 分區;

當 swappiness 爲 100 時,表示積極地使用 SWAP 分區,並且把內存中的數據及時地置換到 SWAP 分區。

根據實際需要設置該值即可,如下述方法臨時修改此參數,假設我們配置爲空閒內存少於 30% 時才使用 SWAP 分區

# echo 30 >/proc/sys/vm/swappiness

若需要永久修改此配置,在系統重啓之後也生效,可修改 /etc/sysctl.conf 文件,增加以下內容

# vim /etc/sysctl.conf

vm.swappiness=30

# sysctl -p

 

5、啓用此交換分區的交換功能

#swapon /mnt/swap

注:如果在 /etc/rc.local 中有 swapoff -a 需要修改爲 swapon -a

 

6、設置開機時自啓用 SWAP 分區

修改文件 /etc/fstab 中的 SWAP 行,添加一行/mnt/swap swap swap defaults 0 0

# echo "/mnt/swap swap swap defaults 0 0" >> /etc/fstab

 

7、檢查是否設置成功

# cat /proc/swaps

# free -m

 

8、關閉swap分區

當系統出現內存不足時,開啓 SWAP 可能會因頻繁換頁操作,導致 IO 性能下降。如果要關閉 SWAP,可以採用如下方法。

使用命令 swapoff 關閉 SWAP

修改 /etc/fstab 文件,刪除或註釋相關配置,取消 SWAP 的自動掛載#swapoff /mnt/swap

#swapoff -a >/dev/null

 

參考鏈接:

https://blog.csdn.net/weixin_41803041/article/details/79496016

https://www.cnblogs.com/fisherbook/p/11023499.html

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