• Linux文件描述符介绍


    一、概述

      Linux系统中一切皆文件,无论是什么,只要是存在Linux系统中的,他都是一个文件。而进程的作用就是为了处理数据,文件是

    保存数据最常见的方法。所以,一般进程都需要打开一些文件,来读取和写入一些数据。但是文件的名称非常复杂,虽然方便我们人

    类查看,但是计算机很难识别这个名称,为了让计算机可以快速的识别文件,我们就引入一个非负整数来代替某个文件。这个非负整

    数就是文件描述符。所以,总结说,文件描述符就是内核为了高效的管理被打开的文件,所创建的一个非负整数和文件名的索引关系。

    这个非负整数范围:0-N,其中0,1,2是特殊文件的文件描述符。0是标准输入,1标准输出,2是错误输出,一般文件的描述符

    都是从3开始的。

    二、文件描述符限制

      一般来说,我们可以创建非常多的文件描述符,直到系统内存被沾满为止,但是生产中是不允许这样的,因为系统内存还有其他的

    作用。所以内核会做出想用的控制,避免占用内存空间,一般情况下,不超过系统内存的10%(从系统级别来看)。

      限制的种类:

      1、系统级别的限制:指系统上所有的进程打开的文件描述符的限制

      2、用户级别的限制:指某一个用户下进程打开的文件描述符的限制

    三、文件描述符的设置

    系统级别:sysctl -a | grep fs.file-max,这个值是由内核自己维护的,最好不要修改他

    临时设置:

      ulimit -SHn  value

    永久设置:

      即编辑/etc/security/limits.conf文件

      格式:

       domain    type    item   value

    domain:可以设置用户或者组

    type:hard和soft两种,-代表两者都设置,soft不能超过hard的值

    item:nofile代表最大打开文件数,nproc代表最大进程数

      

        

  • 相关阅读:
    .NET 图片解密为BASE64
    IIS&ASP.NET 站点IP跳转到域名
    http转https实战教程iis7.5
    接口传参几种方式
    Python3 字符串
    ASP.Net Core WebApi几种版本控制对比
    Docker 部署NetCore 接口(三)
    Docker关键概念和基本命令(二)
    Windows平台下kafka环境的搭建以及简单使用
    CentOS7 安装 Docker-CE(一)
  • 原文地址:https://www.cnblogs.com/myeric/p/8809355.html
Copyright © 2020-2023  润新知