通过 ulimit 改善Linux系统性能(5)

通过上面的 ulimit 设置我们已经把当前 shell 所能使用的最大内存限制在 1000KB 以下。接下来我们看看这时运行 ls 命令会得到什么样的结果:

haohe@sles10-hehao:~/code/ulimit> ls test -l /bin/ls: error while loading shared libraries: libc.so.6: failed to map segment from shared object: Cannot allocate memory  

从上面的结果可以看到,此时 ls 运行失败。根据系统给出的错误信息我们可以看出是由于调用 libc 库时内存分配失败而导致的 ls 出错。那么我们来看一下这个 libc 库文件到底有多大:


图 3. 查看 libc 文件大小

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

使用 ulimit 限制 shell 创建的文件的大小

接下来向读者展示如何使用 -f 选项来对 shell 所能创建的文件大小进行限制。

首先我们来看一下,没有设置 ulimit -f 时的情况:


图 4. 查看文件

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


图 5. 未设置 ulimit 时创建复本

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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/27791.html