zoukankan      html  css  js  c++  java
  • 文件系统及程序的限制关系: ulimit

    想像一个状况:我的 Linux 主机里面同时登陆了十个人,这十个人不知怎么搞的, 同时打开
    100 个文件,每个文件的大小约 10MBytes ,请问一下, 我的 Linux 主机的内存要有多大
    才够? 1010010 = 10000 MBytes = 10GBytes ... 老天爷,这样,系统不挂点才有鬼哩!为了
    要预防这个情况的发生,所以我们的 bash 是可以限制使用者的某些系统资源的,包括可以
    打开的文件数量, 可以使用的 CPU 时间,可以使用的内存总量等等。如何设置?用 ulimit
    吧!

    [dmtsai@study ~]$ ulimit [-SHacdfltu] [配额]
    选项与参数:
    -H :hard limit ,严格的设置,必定不能超过这个设置的数值;
    -S :soft limit ,警告的设置,可以超过这个设置值,但是若超过则有警告讯息。
    在设置上,通常 soft 会比 hard 小,举例来说,soft 可设置为 80 而 hard
    设置为 100,那么你可以使用到 90 (因为没有超过 100) ,但介于 80~100 之间时,
    系统会有警告讯息通知你!
    -a :后面不接任何选项与参数,可列出所有的限制额度;
    -c :当某些程序发生错误时,系统可能会将该程序在内存中的信息写成文件(除错用) ,
    这种文件就被称为核心文件(core file) 。此为限制每个核心文件的最大容量。
    -f :此 shell 可以创建的最大文件大小(一般可能设置为 2GB) 单位为 KBytes
    -d :程序可使用的最大断裂内存(segment) 容量;
    -l :可用于锁定 (lock) 的内存量
    -t :可使用的最大 CPU 时间 (单位为秒)
    -u :单一使用者可以使用的最大程序(process) 数量。
    范例一:列出你目前身份(假设为一般帐号) 的所有限制数据数值
    [dmtsai@study ~]$ ulimit -a
    core file size (blocks, -c) 0 <==只要是 0 就代表没限制
    data seg size (kBytes, -d) unlimited
    scheduling priority (-e) 0
    file size (blocks, -f) unlimited <==可创建的单一文件的大小
    pending signals (-i) 4903
    max locked memory (kBytes, -l) 64
    max memory size (kBytes, -m) unlimited
    open files (-n) 1024 <==同时可打开的文件数量
    pipe size (512 Bytes, -p) 8
    POSIX message queues (Bytes, -q) 819200
    real-time priority (-r) 0
    stack size (kBytes, -s) 8192
    cpu time (seconds, -t) unlimited
    max user processes (-u) 4096
    virtual memory (kBytes, -v) unlimited
    file locks (-x) unlimited
    范例二:限制使用者仅能创建 10MBytes 以下的容量的文件
    [dmtsai@study ~]$ ulimit -f 10240
    [dmtsai@study ~]$ ulimit -a | grep 'file size'
    core file size (blocks, -c) 0
    file size (blocks, -f) 10240 <==最大量为10240Kbyes,相当10MBytes
    [dmtsai@study ~]$ dd if=/dev/zero of=123 bs=1M count=20
    File size limit exceeded (core dumped) <==尝试创建 20MB 的文件,结果失败了!
    [dmtsai@study ~]$ rm 123 <==赶快将这个文件删除啰!同时你得要登出再次的登陆才能解开 10M 的限制
    

      单一 filesystem 能够支持的单一文件
    大小与 block 的大小有关。但是文件系统的限制容量都允许的太大了!如果想要让使用者创建
    的文件不要太大时, 我们是可以考虑用 ulimit 来限制使用者可以创建的文件大小喔!利用
    ulimit -f 就可以来设置了!例如上面的范例二,要注意单位喔!单位是 KBytes。 若改天你一
    直无法创建一个大容量的文件,记得瞧一瞧 ulimit 的信息喔!

    Tips 想要复原 ulimit 的设置最简单的方法就是登出再登陆,否则就是得要重新以 ulimit 设置
    才行! 不过,要注意的是,一般身份使用者如果以 ulimit 设置了 -f 的文件大小, 那么他
    能继续减小文件大小,不能增加文件大小喔!

    来源:鸟哥私房菜

  • 相关阅读:
    zbb20170802 Windows平台使用Gitblit搭建Git服务器图文教程
    zbb20170728 oracle 查看被锁对象
    zbb20170726 Spring Controller 获取请求参数的几种方法
    zbb20170726 spring访问静态文件访问
    zbb20170720 extjs 类似桌面的页面布局
    zbb20170718 Eclipse 导入外部项目无法识别为web项目并且无法在部署到tomcat下
    zbb20170717Spring4 MVC Hibernate4集成 Annotation maven 各种版本
    zbb20170630 web项目发布至tomcat的ROOT下方法(开发环境和部署环境)
    3.语句的增删改查
    1、java面试
  • 原文地址:https://www.cnblogs.com/luck666/p/10395543.html
Copyright © 2011-2022 走看看