Linux的内存到底有多少密码
2016-11-05 18:12
423 查看
之前关于Linux的内存做过几次实验,得出的结论是
pannic_on_oom如果打开的话,当内存不够用的时候,系统会重启,否则,程序会被干掉以释放掉内存。
由于Linux在使用Swap的时候会降低APP的性能等,那么,到底啥时候会使用内存呢?
之前以为是swapniess造成的,但是这个只是个概率值,即使它的取值空间在0~100。经过今天的一点点测试发现,目前能影响swap时间早晚的是 /proc/sys/vm/min_free_kbytes这个参数,这个保留一部分内存,有默认值,当然也可以使用设置。 如果这个设置的越高,那么swap使用的时候会越早,反之亦然。
好吧,先到这儿,还是需要继续学习。
留段代码,下面的代码是今天测试的时候使用,当swap!=0的时候会退出程序。
另外,如果swap已经使用了,即使程序退出了,但是swap的释放还是需要些时间,如何加快呢?
附录:
内存测试手稿
参考:
http://huoding.com/2012/11/08/198
pannic_on_oom如果打开的话,当内存不够用的时候,系统会重启,否则,程序会被干掉以释放掉内存。
由于Linux在使用Swap的时候会降低APP的性能等,那么,到底啥时候会使用内存呢?
之前以为是swapniess造成的,但是这个只是个概率值,即使它的取值空间在0~100。经过今天的一点点测试发现,目前能影响swap时间早晚的是 /proc/sys/vm/min_free_kbytes这个参数,这个保留一部分内存,有默认值,当然也可以使用设置。 如果这个设置的越高,那么swap使用的时候会越早,反之亦然。
好吧,先到这儿,还是需要继续学习。
留段代码,下面的代码是今天测试的时候使用,当swap!=0的时候会退出程序。
#!/usr/bin/env python #coding: utf8 import os import sys import time r1 = {} j = 1 def getMem(): with open('/proc/meminfo') as f: total = int(f.readline().split()[1]) free = int(f.readline().split()[1]) buffers = int(f.readline().split()[1]) cache = int(f.readline().split()[1]) for i in range(0,9): f.readline() swaptotal = int(f.readline().split()[1]) swapfree = int(f.readline().split()[1]) swapused = swaptotal - swapfree mem_use = total-free-buffers-cache #print swaptotal #print swapfree #print swapused if ( swapused > 0): print "%s %s"%(mem_use,swapused) print "马上退出" sys.exit(0) #mem_use = total-free-buffers-cache #print mem_use/1024 #getMem() #sys.exit() j =0 for x1 in range (0,10000000): print "enter 1 for" r1[x1] = {} for x2 in range(0,10240000): r1[x1][x2] = ' ' * ( 1 * 1024 * 100) #print "request for 1MB" j = j + 1 print "request %s "%(j) getMem() #time.sleep(1)
另外,如果swap已经使用了,即使程序退出了,但是swap的释放还是需要些时间,如何加快呢?
swapoff -a swapon -a
附录:
内存测试手稿
参考:
http://huoding.com/2012/11/08/198
相关文章推荐
- 查看linux的进程到底用了多少内存
- 查看linux的进程到底用了多少内存
- 在linux下,怎么去查看一个运行中的程序, 到底是占用了多少内存
- Linux下应用程序到底使用了多少内存
- Linux Pmap 命令:查看进程用了多少内存
- 最详细的LINUX内存使用情况介绍 - Linux Used内存到底哪里去了?
- linux 启动过程临时页表到底映射了多大内存?
- W3wp.exe到底最多能用多少内存?
- 64位机器理论上到底能放多少内存
- 32 位模式下 C/C++ 程序到底可以用多少内存
- [zz]Linux Used内存到底哪里去了?
- Linux Used内存到底哪里去了?
- 一个应用程序在某一时刻,到底是用了多少内存?
- Linux Used内存到底哪里去了?
- 我到底需要多少内存(part 1) - 什么是retained heap?
- Linux Used内存到底哪里去了?
- LINUX2.6内核中用户空间向驱动程序传递的内存大小最大为多少?
- Linux,到底有多少人在使用?
- linux下一个线程占用多少内存
- 每天一条linux命令-------ps - 按进程消耗内存多少排序