Android with root Git for version control Lircd with Raspberry Pi for IR receiver and sender Tips for Windows Depolying your own password management tool -- KeeWeb Depoly your flask app into Heroku Fix shit IE code manually ISBN to Book Category by Scraping DangDang A Generic Makefile for C/C++ Program Configure Raspberry pi Remove watermark with PyPDF2 tips for docker Anaconda+TensorFlow+CUDA Snippets Configure Remote Mathematica Kernel Build your own ngrok server Access Array SSL VPN 使用Rstudio制作html5幻灯片 tips for Mac OS X system Tips for ipython notebook 配置Ubuntu server + Openbox (Obuntu) tips for Vimperator tips for Vim 安装CUDA My First Jekyll Blog rsync常见选项 在Linux中读取Ipod touch的文件 tip for texmacs 在VPS上建站的一些tip Gnuplot绘图札记 Samba系统和autofs自动挂载 Linux中alsamixer声卡无法录音 搭建自己的RSS订阅器——Tiny Tiny RSS Grub2引导安装Ubuntu awk tips 将Ubuntu系统装入U盘 The Great Rtorrent 编译GCC 再这样剁手!!!该死的libgd 使用ulimit进行资源限制 使用SSH代理上IPV6 使用RCurl抓取网页数据 修复Ubuntu Grub记 openbox中的文件关联 在Ubuntu 12.04下编译qtiplot 处理BCM4312网卡驱动纪实 配置我的Ubuntu Server记 Cygwin杂记 Linux 使普通用户具有以超级权限执行脚本 让firefox自定义地处理文件类型 WordPress优秀主题及插件 在phpcloud上搭建wordpress UBUNTU下用pptpd做VPN server ubuntu升级内核过后的一些问题 安装telnet服务 kubuntu札记 64位kubuntu札记 统计软件R Virtualbox stardict星际译王 Ubuntu重装windows系统后的grub引导修复 SSH服务及花生壳域名解析 采用cbp2make工具由code::blocks工程创建makefile文件 UBUNTU 札记

使用ulimit进行资源限制

2013年12月08日

写代码的水平不到家发生内存泄漏,或者有其他程序消耗过多的内存资源啥的,往往会造成Linux卡死,直到系统内存和swap都给用完,系统强制终止该程序后,基本上系统才对你的Ctrl+C啊之类的产生反应.

我一台2G内存的笔记本,你一个firefox就占掉1G的内存,不把你干掉等死机啊?!一淘的那个读取价格变化的js脚本貌似就老是出问题,不停地申请内存,这个时候也不能叫死机,系统忙着处理它的内存请求了,没时间响应我的键盘输入.貌似有说用about:configbrowser.cache.memory.capacity的值来限制内存用量的,但是看官方文档这玩意儿好久之前貌似就没用了.我设置了也没啥办法.

有一个命令ulimit可以限制一个进程及其子进程最多可以使用的系统资源.于是写了个脚本替换掉firefox的启动程序

#!/bin/bash

ulimit -v 800000
/usr/bin/firefox-real

参数-v表示限制虚拟内存使用量,后面的数字是以KB为单位的.

用ulimit只限制当前进程及子进程的资源实用,限制用户(组)可以修改/etc/security/limits.conf.还有cgroups也有此功能.