• 根据PID寻找程序源位置--lsof


    ulimit其实就是对单一程序的限制,进程级别的

    file-max是所有时程最大的文件数

    nr_open是单个进程可分配的最大文件数

    确认系统设置的最大文件句柄数 
    ulimit -a

    统计系统中当前打开的总文件句柄数 
    lsof|awk '{print $2}' |wc -l

    根据打开文件句柄的数量降序排列,其中第二列为进程ID: 
    lsof|awk '{print $2}' |sort|uniq -c|sort -nr|more

    查看23711进程连接句柄数

    lsof|awk '{print $2}'|sort|uniq -c|sort -nr|more|grep 23711

    查看系统级别的能够打开的文件句柄的数量,Centos7默认是794168

    cat /proc/sys/fs/file-max

     限制整个系统最大文件句柄数,修改文件:/etc/sysctl.conf

    fs.file-max=655350 

    ---------------------------------------------------------------------------------------

    当我们得知某个进程的PID后,可以根据PID查找执行程序的路径

    进入内存目录,查看对应PID目录下exe文件的信息:

    # ls -al /proc/xxxx/exe

    这样就找到了进程对应的完整执行程序的路径。

    如果也想同时查找到该进程打开的所有文件,当然包括配置文件等,可以使用

    # lsof -p xxxx

    比较实用的 lsof相关命令:

    lsof `which httpd` //那个进程在使用apache的可执行文件
    lsof /etc/passwd //那个进程在占用/etc/passwd
    lsof /dev/hda6 //那个进程在占用hda6
    lsof /dev/cdrom //那个进程在占用光驱
    lsof -c sendmail //查看sendmail进程的文件使用情况
    lsof -c courier -u ^zahn //显示出那些文件被以courier打头的进程打开,但是并不属于用户zahn
    lsof -p 30297 //显示那些文件被pid为30297的进程打开
    lsof +d /DIR/ 显示目录下被进程打开的文件 
    lsof +D /DIR/ 同上,但是会搜索目录下的所有目录,时间相对较长  lsof
    -u1000 //查看uid是100的用户的进程的文件使用情况 lsof -utony //查看用户tony的进程的文件使用情况 lsof -u^tony //查看不是用户tony的进程的文件使用情况(^是取反的意思) lsof -i //显示所有打开的端口 lsof -i:80 //显示所有打开80端口的进程 lsof -i -U //显示所有打开的端口和UNIX domain文件 lsof -i UDP@[url]www.akadia.com:123 //显示那些进程打开了到www.akadia.com的UDP的123(ntp)端口的链接 lsof -i tcp@ohaha.ks.edu.tw:ftp -r //不断查看目前ftp连接的情况(-r,lsof会永远不断的执行,直到收到中断信号,+r,lsof会一直执行,直到没有档案被显示,缺省是15s刷新) lsof -i tcp@ohaha.ks.edu.tw:ftp -n //lsof -n 不将IP转换为hostname,缺省是不加上-n参数
  • 相关阅读:
    雨课堂知识点总结(六)
    软件构造雨课堂知识点总结(五)
    软件构造雨课堂知识点总结(四)
    软件构造雨课堂知识点总结(三)
    0-N-0计数的优化写法
    Nginx TP5环境配置
    小程序跳转H5及其他页面
    mysql中varchar类型和datetime类型字段进行比较
    微信小程序开发者工具更新后报很多错误
    php后台解决跨域
  • 原文地址:https://www.cnblogs.com/wjoyxt/p/5145413.html
Copyright © 2020-2023  润新知