proxy代理   soft软件   IT 业界特快   norton 诺顿病毒库   代理列表   search FTP搜索   whois IP地理位置   blog 追求完美  
money理财   life生活   RSS聚合门户   firefox WEB浏览器   免费域名   typeset 假古文   AntiVirus 反病毒   ipcn 站点导航  

« tempout.vbe 临时打开了 proxy 的出校接口 | Main | logrotate on demand~ »

January 4, 2005

fd

版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明。
https://windtear.net/archives/2005/01/04/000545.html

blog 特别慢
先写个头吧

fd 是宝贵的资源
一般只默认1024
有些时候增大有好处
很多程序应用编译时就可以通过参数增大fd

程序的fd应用情况在 /proc/$PID/fd/ 目录

----->   2005-01-06 15:16 更新
< 感谢ache帮我搜索的资料:P>
标  题: Re: fd
发信站: HAPPY (Wed Jan  5 00:47:28 2005), 站内

在进程内打开一个文件,都有唯一一个文件描述符 (fd:file descriptor)
与这个文件对应。

问题:已知一个fd ,如何获取这个fd所对应文件的完整路径?
不管是Linux、FreeBSD或是其它Unix系统都没有提供这样的API
lsof,使用它既可以知道进程打开了哪些文件,也可以了解一个文件被哪个进程打开

Linux内核会为每一个进程在/proc/建立一个以其pid为名的目录用来保存进程的相关
信息,而其子目录fd保存的是该进程打开的所有文件的fd。
<这一部分 为copy整理 偷懒了>

一般有用的地方是通过 bash 内置函数 ulimit 进行设置:
如 ulimt -n 65535 把最大fd从默认的1024改为 65535
ulimit -n 则是查看当前设置 HS 分别为Hard Soft

       ulimit [-SHacdflmnpstuv [limit]]
              Provides  control  over the resources available to the shell and
              to processes started by it, on systems that allow such  control.
              The -H and -S options specify that the hard or soft limit is set
              for the given resource.  A hard limit cannot be  increased  once
              it  is set; a soft limit may be increased up to the value of the
              hard limit.  If neither -H nor -S is specified,  both  the  soft
              and  hard limits are set.  The value of limit can be a number in
              the unit specified for the resource or one of the special values
              hard,  soft,  or  unlimited,  which  stand  for the current hard
              limit, the current soft limit, and no limit,  respectively.   If
              limit  is  omitted,  the  current value of the soft limit of the
              resource is printed, unless the -H option is given.   When  more
              than  one  resource  is  specified,  the limit name and unit are
              printed before the value.  Other options are interpreted as fol-
              lows:
              -a     All current limits are reported
              -c     The maximum size of core files created
              -d     The maximum size of a process's data segment
              -f     The maximum size of files created by the shell
              -l     The maximum size that may be locked into memory
              -m     The maximum resident set size
              -n     The maximum number of open file descriptors (most systems
                     do not allow this value to be set)
              -p     The pipe size in 512-byte blocks (this may not be set)
              -s     The maximum stack size
              -t     The maximum amount of cpu time in seconds
              -u     The maximum number of processes  available  to  a  single
                     user
              -v     The  maximum  amount  of  virtual memory available to the
                     shell

              If limit is given, it is the new value of the specified resource
              (the -a option is display only).  If no option is given, then -f
              is assumed.  Values are in 1024-byte increments, except for  -t,
              which  is  in seconds, -p, which is in units of 512-byte blocks,
              and -n and -u, which are unscaled values.  The return status  is
              0  unless an invalid option or argument is supplied, or an error
              occurs while setting a new limit.

 

本blog WWW

Posted by windtear at January 4, 2005 11:18 PM

本站使用中的任何问题,请与 windtear @ windtear.net 联系
Copyright© 1999-2024 Windtear. All rights reserved.