linux 服务器命令

服务器句柄数相关命令

1. 查看当前用户的文件句柄限制

ulimit -a

2. 用户级别的句柄数限制修改。

修改 /etc/security/limits.conf 增加下面的代码:
用户名(或者用*表示所有用户) soft nofile 65535
用户名 hard nofile 65535
有两种限制,一种是soft软限制,在数目超过软限制的时候系统会给出warning警告,但是达到hard硬限制的时候系统将拒绝或者异常了。

修改之后可能需要重启shell生效。

3. 系统级别的句柄数限制修改。

sysctl -w fs.file-max 65536

echo "65536" > /proc/sys/fs/file-max
两者作用是相同的,前者改内核参数,后者直接作用于内核参数在虚拟文件系统(procfs, psuedo file system)上对应的文件而已。
可以用下面的命令查看新的限制
sysctl -a | grep fs.file-max
或者
cat /proc/sys/fs/file-max
修改内核参数
() /etc/sysctl.conf echo "fs.file-max=65536" >> /etc/sysctl.conf sysctl -p ()

  • 查看系统总限制,命令:
    cat /proc/sys/fs/file-max
  • 查看整个系统目前使用的文件句柄数量,命令:
    cat /proc/sys/fs/file-nr
  • 查看某个进程开了哪些句柄
    lsof -p pid
  • 某个进程开了几个句柄
    lsof -p pid |wc -l
  • 也可以看到某个目录 /文件被什么进程占用了,显示已打开该目录或文件的所有进程信息
    lsof path/filename

其他命令

  • 查找进程
    for i in 'pgrep java';do echo $i; ll /proc/$i/cwd; netstat -ntlp|grep $i;done
  • tomcat并发数
    ps -ef|grep httpd|wc -l
  • 外部访问量的ip地址
    grep ip:port | awk'{print $5}'| awk -F:'{print ($1>$4?$1:$4)}'|sort|uniq -c |sort -nr|head
  • 开放hosts文件的读写权限
    sudo /bin/chmod +a 'user:apple:allow write' /etc/hosts