linux内存爆了会怎样,linux系统中内存爆满之后会如何?
在使用python寫程序的時候,發現一個可以無限迭代的迭代器,從而可以直接將系統中的內存占滿,那么占滿之后會發生什么呢?
1、 創建無限迭代,生成列表,如下:
[root@python?~]#?python
Python?2.7.11?(default,?Mar?20?2016,?14:21:08)
[GCC?4.4.6?20110731?(Red?Hat?4.4.6-3)]?on?linux2
Type?"help",?"copyright",?"credits"?or?"license"?for?more?information.
>>>?import?itertools
>>>?r?=?map(lambda?x?:x*x,itertools.count(1))
2、監控使用命令vmstat
[root@python?~]#?vmstat?1?-S?m??#每隔一秒采集一次信息,單位為Mb
3、系統使用情況如下
procs?-----------memory----------?---swap--?-----io----?--system--?-----cpu-----
r??b???swpd???free???buff??cache???si???so????bi????bo???in???cs?us?sy?id?wa?st
1??0??????0????851?????15?????52????0????0?????0?????0??414???69?34??3?63??0??0
1??0??????0????610?????15?????52????0????0?????0?????0??995????7?83?17??0??0??0
1??0??????0????458?????15?????52????0????0?????0?????0??616???13?70?30??0??0??0
1??0??????0????345?????15?????52????0????0?????0?????0??489????9?70?30??0??0??0
1??0??????0????187?????15?????52????0????0?????0?????0??694???11?77?23??0??0??0
3??2?????29?????50??????2?????18????0????0???220?41400?1154??190?71?23??0??6??0
1??2????238?????65??????1?????13????0????0???580?191392?1232??261?49?25??0?26??0
1??2????375?????50??????0?????12????0????0??1720?134264?1360??284?64?25??0?11??0
0??3????452?????50??????0?????11????0????0???768?75212??758??150?38?13??0?49??0
1??1????528?????62??????0??????9????0????0???192?74668??972??134?52?18??0?30??0
1??1????700?????50??????0??????9????0????0?????0?167244?1084??150?55?23??0?22??0
0??3????767?????50??????0??????9????0????0?????0?66068??456???48?17?12??0?71??0
1??1????808?????60??????0??????9????0????0??1652?39688??505??191?17??9??0?74??0
0??3????952?????50??????0??????7????0????0???504?141228?1078??191?57?20??0?23??0
0??2???1068?????58??????0??????7????0????0???288?113176??860??127?40?21??0?40??0
2??2???1136?????50??????0??????7????0????0??1584?66656??939??279?46?17??0?37??0
0??4???1252?????50??????0??????7????0????0???276?113460??679???90?31?14??0?55??0
0??6???1266?????53??????0??????8????0????0???904?13332??267??116??8??4??0?88??0
1??0???1339?????63??????0??????7????0????0???216?71196??957??116?43?19??0?38??0
0??2???1549?????52??????0??????7????0????0?????0?205896?1196??194?49?31??0?20??0
1??0???1666?????71??????0??????6????0????0?????0?114372??948???57?43?19??0?37??0
0??2???1799?????51??????0??????5????0????0?????0?130104?1101??214?57?24??0?20??0
1??1???1922?????61??????0??????5????0????0?????0?119856?1092??132?51?23??0?26??0
0??2???2002?????50??????0??????5????0????0?????0?77788??662??103?31?17??0?52??0
2??0???2093?????51??????0??????5????0????0????32?89104?1054??257?49?25??0?26??0
0??2?????16????990??????0??????1????0????0??3824?19836??786?1639?21?17??0?62??0
從上面可以看出,swap使用的越來越多,free的空間越來越少,到最后達到swap的最大值之后,開始恢復內存空間。
系統的內存如下:
[root@python?~]#?free?-m
total???????used???????free?????shared????buffers?????cached
Mem:???????????996?????????64????????932??????????0??????????1?????????10
-/+?buffers/cache:?????????52????????943
Swap:?????????2015?????????14???????2001
4、 結論
當內存使用太多,沒有剩余的內存的時候,操作系統會直接將進程殺死,如下所示:
[root@python?~]#?python
Python?2.7.11?(default,?Mar?20?2016,?14:21:08)
[GCC?4.4.6?20110731?(Red?Hat?4.4.6-3)]?on?linux2
Type?"help",?"copyright",?"credits"?or?"license"?for?more?information.
>>>?import?itertools
>>>?r?=?map(lambda?x?:x*x,itertools.count(1))
Killed
最后一個killed表示殺死進程,開始回收空間。
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的linux内存爆了会怎样,linux系统中内存爆满之后会如何?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux如何卸载netstat,lin
- 下一篇: cd 地址 linux,Ubuntu10