仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3367|回复: 19
打印 上一主题 下一主题

[其他Linux] Linux制作之利用ulimit和proc往调剂体系参数仓酷云

[复制链接]
精灵巫婆 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:37:10 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
讨论什么版本好并无意义,关键是你是不是真心想学.不过,为了避免曲高和寡,最好选用的人多的版本。
在利用linux做为关头使用的过程当中,出格是年夜压力负载的时分,常常会碰到一些诸如“toomanyopenfiles”,“体系默许最年夜线程数是几?怎样调剂?”等成绩。此时,我们就必需利用ulimit或proc往调剂体系的某些参数。
1、区分
ulimit和对proc目次都能够作出某些限定,但它们之间是有区分的:
1、ulimit命令:
1)间接利用ulimit命令,只对以后tty(终端无效),若要每次都失效的话,能够把ulimit参数放到对使用户的.bash_profile内里;
2)针对一切用户的设置,在/etc/security/limits.conf文件,其是能够对体系用户、组举行cpu、文件数等限定的,经由过程它能够针对某个用户或全体举行限定。但不克不及超出体系的限定;
(*暗示一切用户、soft暗示能够超越,但只是告诫;hard暗示相对不克不及超越,unlimited用于暗示不限定)
3)另外一办法是,假如想对一切用户设置,也能够放在/etc/profile文件内里,上面是该文件内里的默许参数:
援用ulimit-S-c0>/dev/null2>&1
2、/proc目次:
1)/proc目次内里包含良多体系以后形态的参数,比方:
援用/proc/sys/fs/file-max
/proc/sys/fs/inode-max
是对全部体系的限定,并非针对用户的;
2)proc目次中的值能够举行静态的设置,若但愿永世失效,能够修正/etc/sysctl.conf文件,并利用上面的命令确认:
#sysctl-p
比方增添:
援用fs.file-max=xxx
fs.inode-max=xxx

2、ulimit命令简介
(以下援用网上的部分材料)
1、申明:
ulimit用于shell启动历程所占用的资本.
2、种别:
shell内建命令
3、语法格局:
ulimit[-acdfHlmnpsStvw][size]
4、参数先容:
援用-H设置硬件资本限定.
-S设置软件资本限定.
-a显现以后一切的资本限定.
-csize:设置core文件的最年夜值.单元:blocks
-dsize:设置数据段的最年夜值.单元:kbytes
-fsize:设置创立文件的最年夜值.单元:blocks
-lsize:设置在内存中锁定历程的最年夜值.单元:kbytes
-msize:设置可使用的常驻内存的最年夜值.单元:kbytes
-nsize:设置内核能够同时翻开的文件形貌符的最年夜值.单元:n
-psize:设置管道缓冲区的最年夜值.单元:kbytes
-ssize:设置仓库的最年夜值.单元:kbytes
-tsize:设置CPU利用工夫的最年夜下限.单元:seconds
-vsize:设置假造内存的最年夜值.单元:kbytes
unlimited是一个特别值,用于暗示不限定
5、复杂实例:
假如我们想要对由shell创立的文件巨细作些限定,如:
援用:
[/home/javalee]llh
-rw-r--r--1javaleejavalee1500627月2202:39h
[/home/javalee]ulimit-f100#设置创立文件的最年夜块(一块=512字节)
[/home/javalee]cath>newh
Filesizelimitexceeded
[/home/javalee]
[/home/javalee]llnewh
-rw-r--r--1javaleejavalee5120011月811:47newh
文件h的巨细是150062字节,而我们设定的创立文件的巨细是512字节x100块=51200字节,固然体系就会依据你的设置天生了51200字节的newh文件。
若要每次都失效,把你要设置的ulimit放在/etc/profile这个情况文件中便可。

3、实例申明
关于一样平常的使用来讲(象Apache、体系历程)1024完整充足利用。可是怎样象squid、mysql、java等单历程处置大批哀求的使用来讲就有点左支右绌了。假如单个历程翻开的文件句柄数目凌驾了体系界说的值,就会提到“toomanyfilesopen”的毛病提醒。怎样晓得以后历程翻开了几个文件句柄呢?上面一段小剧本能够帮你检察:

#lsof-n|awk"{print$2}"|sort|uniq-c|sort-nr|more
在体系会见岑岭工夫以root用户实行下面的剧本,大概呈现的了局以下:
援用#lsof-n|awk"{print$2}"|sort|uniq-c|sort-nr|more    
13124204  
5724244  
5724231  
5624264
个中第一行是翻开的文件句柄数目,第二行是历程号。失掉历程号后,我们能够经由过程ps命令失掉历程的具体内容。
援用#ps-aef|grep24204
mysql  24204241629916:15?    00:24:25/usr/sbin/mysqld
哦,本来是mysql历程翻开最多文件句柄数目。可是他今朝只翻开了131个文件句柄数目,远远底于体系默许值1024。
可是假如体系并发出格年夜,特别是squid服务器,很有大概会凌驾1024。这时候候就必需要调剂体系参数,以顺应使用变更。以root用户运转以下命令:

#ulimit-HSn4096

以上命令中,H指定了硬性巨细,S指定了软性巨细,n暗示设订单个历程最年夜的翻开文件句柄数目。团体以为最好不要凌驾4096,究竟翻开的文件句柄数越多呼应工夫一定会越慢。设定句柄数目后,体系重启后,又会恢复默许值。假如想永世保留上去,能够修正.bash_profile文件,能够修正/etc/profile把下面命令加到最初。

4、/proc目次设置
因为/proc目次触及的设置十分多,包含收集、文件体系等,后续以一篇自力的文章举行吧。

※实践使用中,必要剖析分明成绩呈现的缘故原由,依据实践情形天真设置!
Linux的常用命令find,察看man文档,初学者一定会觉得太复杂而不原意用,但是你一旦学会就爱不释手。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-5 07:18

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表