首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

透过 ulimit 改善系统性能

2012-09-01 
通过 ulimit 改善系统性能?http://www.ibm.com/developerworks/cn/linux/l-cn-ulimit/?通过 ulimit 改善系

通过 ulimit 改善系统性能

?

http://www.ibm.com/developerworks/cn/linux/l-cn-ulimit/

?

通过 ulimit 改善系统性能透过 ulimit 改善系统性能透过 ulimit 改善系统性能透过 ulimit 改善系统性能透过 ulimit 改善系统性能<script type="text/javascript"></script>透过 ulimit 改善系统性能透过 ulimit 改善系统性能

打印本页

<noscript></noscript><script type="text/javascript"></script>透过 ulimit 改善系统性能透过 ulimit 改善系统性能

将此页作为电子邮件发送

<noscript></noscript><!--START RESERVED FOR FUTURE USE INCLUDE FILES--><!-- this content will be automatically generated across all content areas --><!--END RESERVED FOR FUTURE USE INCLUDE FILES-->

级别: 初级

孙 翎, 软件工程师, IBM
叶 光昶, 软件工程师, IBM
潘 宁河, 软件工程师, IBM

2009 年 11 月 26 日

本文介绍了 ulimit 内键指令的主要功能以及用于改善系统性能的 ulimit 使用方法。通过这篇文章,读者不仅可以了解 ulimit 所起的作用,并且可以学会如何更好地通过 ulimit 限制资源的使用来改善系统性能。
<!--START RESERVED FOR FUTURE USE INCLUDE FILES--><!-- include java script once we verify teams wants to use this and it will work on dbcs and cyrillic characters --><!--END RESERVED FOR FUTURE USE INCLUDE FILES-->


透过 ulimit 改善系统性能
透过 ulimit 改善系统性能
回页首


在下面的章节中,将详细介绍如何使用 ulimit 做相应的资源限制。


透过 ulimit 改善系统性能
透过 ulimit 改善系统性能
回页首


透过 ulimit 改善系统性能
透过 ulimit 改善系统性能
回页首


大家可以看到此时的 ls 命令运行正常。下面设置 ulimit:


从上面的信息可以看出,这个 libc 库文件的大小是 1.5MB。而我们用 ulimit 所设置的内存使用上限是 1000KB,小于 1.5MB,这也就充分证明了 ulimit 所起到的限制 shell 内存使用的功能。


现有一个文件 testFile 大小为 323669 bytes,现在使用 cat 命令来创建一个 testFile 的 copy:


图 5. 未设置 ulimit 时创建复本
透过 ulimit 改善系统性能

从上面的输出可以看出,我们成功的创建了 testFile 的拷贝 newFile。

下面我们设置 ulimt – f 100:


这次创建 testFile 的拷贝失败了,系统给出的出错信息时文件大小超出了限制。在 Linux 系统下一个 block 的默认大小是 512 bytes。所以上面的 ulimit 的含义就是限制 shell 所能创建的文件最大值为 512 x 100 = 51200 bytes,小于 323669 bytes,所以创建文件失败,符合我们的期望。这个例子说明了如何使用 ulimit 来控制 shell 所能创建的最大文件。


因此,我们可以通过使用 ulimit – n 来限制程序所能打开的最大文件描述符数量,从而达到限制 socket 创建的数量。


每当一个新的线程被创建时都需要新分配一段大小为 1232KB 的内存空间,而我们总的虚拟内存限制是 200MB,所以如果我们需要创建更多的线程,那么一个可以改进的方法就是减少每个线程的固定堆栈大小,这可以通过 ulimit – s 来实现:


从上面的信息可以看出,我们已经成功的将线程的堆栈大小改为 512KB 了,这样在总内存使用限制不变的情况下,我们可以通过本小节介绍的方法来增加可以创建的线程数,从而达到改善程序的多线程性能。


透过 ulimit 改善系统性能
透过 ulimit 改善系统性能
透过 ulimit 改善系统性能
回页首

总结

综上所述,linux 系统中的 ulimit 指令,对资源限制和系统性能优化提供了一条便捷的途径。从用户的 shell 启动脚本,应用程序启动脚本,以及直接在控制台,都可以通过该指令限制系统资源的使用,包括所创建的内核文件的大小、进程数据块的大小、Shell 进程创建文件的大小、内存锁住的大小、常驻内存集的大小、打开文件描述符的数量、分配堆栈的最大大小、CPU 时间、单个用户的最大线程数、Shell 进程所能使用的最大虚拟内存,等等方面。本文中的示例非常直观的说明了 ulimit 的使用及其产生的效果,显而易见,ulimit 对我们在 Linux 平台的应用和开发工作是非常实用的。

热点排行