Ubuntu vps 为 shadowsocks 优化增加 文件数 (ulimit -n)

Linux VPS 支持
回复
maxchen
帖子: 77
注册时间: 2009-12-05 20:03

Ubuntu vps 为 shadowsocks 优化增加 文件数 (ulimit -n)

#1

帖子 maxchen » 2014-12-03 21:06

https://github.com/clowwindy/shadowsock ... hadowsocks 有谈到 Optimizing Shadowsocks,实际上是设置 open files 突破 1024 的默认限制。在 Ubuntu 下的设置需要改动3个文件。

如下命令可以了解相关信息

代码: 全选

cat /proc/sys/fs/file-max     #得到的值比如 601324, 确保下面要设置的值比该值小
cat /proc/sys/fs/file-nr
sysctl -a | grep fs.file-max
ulimit -a
前三行报告的是操作系统级别的设定,最后一行报告的是用户的。

代码: 全选

ulimit -a
的运行结果如下

core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 47557
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) 47557
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited


想把 open files 的数目改大点,是不让的

代码: 全选

ulimit -n 5120
bash: ulimit: open files: cannot modify limit: Operation not permitted

先建立个三行的脚本,用来测试

代码: 全选

nano test.sh
内容为如下几行

代码: 全选

#!/bin/bash
ulimit -n
ulimit -n 5120
ulimit -n 

代码: 全选

chmod +x test.sh 
用 nobody 用户测试 (假设 shadowsocks 用 nobody 用户运行)

代码: 全选

cp ./test.sh /tmp/
sudo -u nobody /tmp/test.sh
报告出错

代码: 全选

nano /etc/security/limits.conf
添加

代码: 全选

nobody soft nofile 60000
nobody hard nofile 60000
以及

代码: 全选

nano /etc/pam.d/common-session
nano /etc/pam.d/common-session-noninteractive
这两文件添加如下行

代码: 全选

session required pam_limits.so
也许需要 reboot,再测试

代码: 全选

cp ./test.sh /tmp/
sudo -u nobody /tmp/test.sh
输出为

代码: 全选

60000
5120
表明成功了
maxchen
帖子: 77
注册时间: 2009-12-05 20:03

Re: Ubuntu vps 为 shadowsocks 优化增加 文件数 (ulimit -n)

#2

帖子 maxchen » 2014-12-03 21:12

https://youtu.be/-z_CGwfjSn0 有用 64M 内存的 vps 配置 shadowsocks 的视频,并设置了开机自动启动
maxchen
帖子: 77
注册时间: 2009-12-05 20:03

Re: Ubuntu vps 为 shadowsocks 优化增加 文件数 (ulimit -n)

#3

帖子 maxchen » 2016-08-16 21:42

在 16.04 上,不需要设置了

代码: 全选

ulimit -n
ulimit -n 5120
ulimit -n
将看到直接设置为 5120了,不会像U14.04下得到如下错误
bash: ulimit: open files: cannot modify limit: Operation not permitted
回复