Linux制作之利用ulimit和proc往调剂体系参数仓酷云
讨论什么版本好并无意义,关键是你是不是真心想学.不过,为了避免曲高和寡,最好选用的人多的版本。在利用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]
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创立的文件巨细作些限定,如:
援用:
llh
-rw-r--r--1javaleejavalee1500627月2202:39h
ulimit-f100#设置创立文件的最年夜块(一块=512字节)
cath>newh
Filesizelimitexceeded
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文档,初学者一定会觉得太复杂而不原意用,但是你一旦学会就爱不释手。 用户下达的命令解释给系统去执行,并将系统传回的信息再次解释给用户,估shell也称为命令解释器,有关命令的学习可参考论坛相关文章,精通英文也是学习Linux的关键。 另外Linux上也有很多的应用软件,安装运行了这些软件后,你就可以在Linux上编辑文档、图?片,玩游戏、上网、播放多媒体文件等。 随着Linux技术的更加成熟、完善,其应用领域和市场份额继续快速增大。目前,其主要应用领域是服务器系统和嵌入式系统。然而,它的足迹已遍布各个行业,几乎无处不在。 要增加自己Linux的技能,只有通过实践来实现了。所以,赶快找一部计算机,赶快安装一个Linux发行版本,然后进入精彩的Linux世界,相信对于你自己的Linux能力必然大有斩获。 这也正是有别的OS得以存在的原因,每个系统都有其自身的优点。? 甚至目前许多应用软件都是基于它的。可是没有哪一个系统是十分完美的。 发问的时候一定要注意到某些礼节。因为Linux社区是一个松散的组织、也不承担回复每个帖子的义务。它不是技术支持。 眼看这个学期的Linux课程已经告一段落了,我觉得有必要写一遍心得体会来总结一下这学期对着门课程的学习。 我们自学,就这个循环的过程中,我们学习了基本操作,用vi,shell,模拟内存的分配过程等一些OS管理。 我们自学,就这个循环的过程中,我们学习了基本操作,用vi,shell,模拟内存的分配过程等一些OS管理。 一定要学好命令,shell是命令语言,命令解释程序及程序设计语言的统称,shell也负责用户和操作系统之间的沟通。 任何一个叫做操作系统的东西都是这样子构成的:内核+用户界面+一般应用程序。 学习Linux系统在服务中的配置方法及使用方法。Linux在服务器中应用相当广,应对常用的apache,samba,ftp等服务器基本配置清楚了解。[重点,应巩固学习] 放手去搞。尽量不要提问,运用搜索找答案,或者看wiki,从原理上理解操作系统的本质,而不是满足于使用几个技巧。尽量看英文资料。 即便是非英语国家的人发布技术文档,Linux也都首先翻译成英语在国际学术杂志和网络上发表。 上课传授的不仅仅是知识,更重要的是一些道理,包括一些做人的道理,讲课时也抓住重点,循序渐进,让同学理解很快;更可贵的是不以你过去的成绩看问题. 以前觉得Linux就跟dos一样,全是用命令窗口,相对于窗口界面来说多麻烦呀。 上课传授的不仅仅是知识,更重要的是一些道理,包括一些做人的道理,讲课时也抓住重点,循序渐进,让同学理解很快;更可贵的是不以你过去的成绩看问题. 即便是非英语国家的人发布技术文档,Linux也都首先翻译成英语在国际学术杂志和网络上发表。
页:
[1]