程式的limit 限制的修改
一般情況下,我們認為 一個程式在啟動的時候,從當前環境裡繼承了
ulimit 的各個限制,一旦啟動就無法修改了。
一般情況下是需要修改系統的ulimit 配置 ,重新登入,然後重新啟動引用。
前面我們也說了在centos6.2 之後,/etc/security/limits.d/90-nproc.conf 這檔案裡定義了各個程式預設的限制。
如果一個程式,已經啟動了,而發現他的limit限制沒有改,又不能隨便重啟怎麼辦呢?
centos 6.2之後的系統是可以的。
vi /proc/$pid/limits
[code]
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 10485760 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 10240 10240 processes
Max open files 65536 65536 files
Max locked memory 65536 65536 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 515066 515066 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
[/code]
[postgres@bbs-userdb-239-230 31141]$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 515066
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 65536
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 10240
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
我們修改下看看 。
[code]
[postgres@bbs-userdb-239-230 31141]$ echo -n 'Max processes=1024:1024' > limits
[postgres@bbs-userdb-239-230 31141]$ grep process limits
Max processes 1024 1024 processes
[postgres@bbs-userdb-239-230 31141]$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 515066
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 65536
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 1024
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
[/code]
看到了麼,修改了哦
當然了對於以前版本的,必須要重啟應用才能解決的,也有一個比較BT 的方案
用gdb 勾住程式然後修改程式的core dump 空間裡的值。
之前用gdb 來修改過mysql 的只讀引數,是可行的, 修改這個也是可行的。
轉一個網上找到的指令碼放這裡:
[code]
#!/bin/bash f="0" while getopts ":c:d:e:f:i:l:m:n:p:q:r:s:t:u:v:x" opt; do if [ "$f" == "1" ]; then echo "too many arguments" >&2; exit 1 fi f="1" v="$OPTARG" case $opt in c) r=4 ;; # RLIMIT_CORE core file size d) r=2 ;; # RLIMIT_DATA data seg size e) r=13 ;; # RLIMIT_NICE scheduling priority f) r=1 ;; # RLIMIT_FSIZE file size i) r=11 ;; # RLIMIT_SIGPENDING pending signals l) r=8 ;; # RLIMIT_MEMLOCK max locked memory m) r=5 ;; # RLIMIT_RSS max memory size n) r=7 ;; # RLIMIT_NOFILE open files q) r=12 ;; # RLIMIT_MSGQUEUE POSIX message queues r) r=14 ;; # RLIMIT_RTPRIO real-time priority s) r=3 ;; # RLIMIT_STACK stack size t) r=0 ;; # RLIMIT_CPU cpu time u) r=6 ;; # RLIMIT_NPROC max user processes v) r=9 ;; # RLIMIT_AS virtual memory x) r=10 ;; # RLIMIT_LOCKS file locks ?) echo "bad argument $opt" >&2; exit 1 ;; esac done shift $(($OPTIND - 1)) if echo "$v" | grep -q -E "^\-?[0-9]+$"; then true else echo "bad rlimti value $v" >&2 exit 2 fi if [ `echo "$v==-1 || ($v>=0 && $v<1048576)"|bc` == '0' ];then echo "bad rlimti value $v" >&2 exit 2 fi pid=$1 bin=`readlink /proc/$pid/exe` if [ -z "$bin" ]; then echo "process $pid not found" >&2 exit 3 fi cmd=' set $rlim=&{-1ll,-1ll} print getrlimit('$r',$rlim) set *$rlim[0]='$v' print setrlimit('$r',$rlim) quit ' result=`echo "$cmd" | gdb $bin $pid 2>/dev/null | grep '(gdb) \$2 ='` result="${result##*= }" exit $result
[/code]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/133735/viewspace-758303/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- linux limit限制LinuxMIT
- Nginx limit模組限制併發數NginxMIT
- 修改linux只能上500多個程式的限制(轉)Linux
- 利用資源限制效能診斷resource limitMIT
- 功能限制的程式
- 修改PHP上傳檔案大小限制的方法PHP
- AIX下修改使用者最大程式數限制AI
- 功能限制的程式習題
- 第十七篇:獲取 / 修改程式資源限制
- Mysql LIMIT的用法MySqlMIT
- Linux中修改開啟檔案的數量限制Linux
- 程式間通訊(IPC) 的限制
- 修改profile實現資源限制
- MySQL中limit的用法MySqlMIT
- AIX中的limit值AIMIT
- 【TUNE_ORACLE】PGA_AGGREGATE_LIMIT詳解(一)PGA_AGGREGATE_TARGET的限制OracleMIT
- 使用資料庫引數 PGA_AGGREGATE_LIMIT 限制程式大小 (文件 ID 1602891資料庫MIT
- 簡單介紹使用p-limit 限制併發數原始碼解析MIT原始碼
- 使用cgroup 限制程式的磁碟io
- Laravel 中 offset,limit 的使用LaravelMIT
- SQL之limit子句的使用SQLMIT
- order by limit 引發的思考MIT
- 【Mysql學習】LIMIT的使用MySqlMIT
- 【Mysql 學習】LIMIT 的使用MySqlMIT
- pbootcms網站欄目url字數長度限制的修改方法boot網站
- Netweaver工作程式的記憶體限制 VS CloudFoundry應用的記憶體限制記憶體Cloud
- 轉: Windows控制程式碼數的限制Windows
- .net下程式的暴力修改
- 條件限制性進入某個程式流程的限制演算法演算法
- 最佳化mysql的limit offset的例子MySqlMIT
- 用VB“破解”有時間限制的程式 (轉)
- mysql 8.0.11 資料庫使用者密碼修改詭異的限制MySql資料庫密碼
- 在Linux中修改開啟檔案數量限制的3種方法Linux
- 【PHP】修改PHP配置檔案php.ini 上傳檔案的大小限制PHP
- Oracle 限制業務使用者自身修改密碼Oracle密碼
- phpmyadmin匯入資料庫大小限制修改PHP資料庫
- 如何限制使用者修改long_query_time
- 修改hosts檔案的小程式