linux下,Iptable加过滤IP时提示:iptables: Resource temporarily unavailable.的解决办法
背景:过滤蜘蛛程序,iptables出现:
root@119.10.6.**:/usr/local/scripts# sh getRidOfSpam.sh
iptables: Resource temporarily unavailable.
iptables: Resource temporarily unavailable.
iptables: Resource temporarily unavailable.
iptables: Resource temporarily unavailable.
iptables: Resource temporarily unavailable.
iptables: Resource temporarily unavailable解决方法
由于线程数目超出了最大值。
root用户下查看oracle用户可用的线程数目
vi /etc/security/limits.conf
显示内容类似如下:
iptables soft nproc 2046
iptables hard nproc 16384
nproc就是"max user processes", 修改soft的数目即可。
lsof | grep iptables | wc -l
PHP的php-fpm进程打开文件居然有这么多,太恐怖了,重启一下先:
lsof | grep iptables | wc -l
21
lsof | grep php | wc -l
12970
lsof | grep nginx | wc -l
776
lsof | grep mysql | wc -l
134
查看打开文件的具体信息:
lsof | grep iptables > iptables.txt
参看:http://blog.itpub.net/12457158/viewspace-753400/
————————————————————————————————————————
ulimit -n 65535 解决,但重启无效的解决办法:
linux下,Iptable加过滤IP时提示:iptables: Resource temporarily unavailable.的解决办法
使用ulimit -a 可以查看当前系统的所有限制值,使用ulimit -n 可以查看当前的最大打开文件数。
新装的linux默认只有1024,当作负载较大的服务器时,很容易遇到error: too many open files。因此,需要将其改大。
使用 ulimit -n 65535 可即时修改,但重启后就无效了。(注ulimit -SHn 65535 等效 ulimit -n 65535,-S指soft,-H指hard)
有如下三种修改方式:
1.在/etc/rc.local 中增加一行 ulimit -n 65535
2.在/etc/profile 中增加一行 ulimit -n 65535
3.在/etc/security/limits.conf最后增加如下两行记录
* soft nofile 65535
* hard nofile 65535
具体使用哪种,试试哪种有效吧,我在 CentOS中使用第1种方式无效果,使用第3种方式有效果,而在Debian中使用第2种有效果
——————————————————————————————————————————————————————————————
一)临时改变:
设置各linux 用户的最大进程数,下面我把某linux用户的最大进程数设为10000个:
ulimit -u 10000
ulimit -a
root@119.10.6.**:~# 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) 46661
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 65535 (因为是tcp协议 要打开套接字,要打开文件句柄,而单进程的最大打开文件句柄操作系统是有限制的,默认是1024)
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) unlimited
cpu time (seconds, -t) unlimited
max user processes (-u) 10000
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
二)永久性改变
解除 Linux 系统的最大进程数和最大文件打开数限制:
vi /etc/security/limits.conf
# 添加如下的行
* soft noproc 11000 #软连接
* hard noproc 11000 #硬连接
* soft nofile 4100
* hard nofile 4100
说明:* 代表针对所有用户,noproc 是代表最大进程数,nofile 是代表最大文件打开数
root@119.10.6.**:/usr/local/scripts# sh getRidOfSpam.sh
iptables: Resource temporarily unavailable.
iptables: Resource temporarily unavailable.
iptables: Resource temporarily unavailable.
iptables: Resource temporarily unavailable.
iptables: Resource temporarily unavailable.
iptables: Resource temporarily unavailable解决方法
由于线程数目超出了最大值。
root用户下查看oracle用户可用的线程数目
vi /etc/security/limits.conf
显示内容类似如下:
iptables soft nproc 2046
iptables hard nproc 16384
nproc就是"max user processes", 修改soft的数目即可。
lsof | grep iptables | wc -l
PHP的php-fpm进程打开文件居然有这么多,太恐怖了,重启一下先:
lsof | grep iptables | wc -l
21
lsof | grep php | wc -l
12970
lsof | grep nginx | wc -l
776
lsof | grep mysql | wc -l
134
查看打开文件的具体信息:
lsof | grep iptables > iptables.txt
参看:http://blog.itpub.net/12457158/viewspace-753400/
————————————————————————————————————————
ulimit -n 65535 解决,但重启无效的解决办法:
linux下,Iptable加过滤IP时提示:iptables: Resource temporarily unavailable.的解决办法
使用ulimit -a 可以查看当前系统的所有限制值,使用ulimit -n 可以查看当前的最大打开文件数。
新装的linux默认只有1024,当作负载较大的服务器时,很容易遇到error: too many open files。因此,需要将其改大。
使用 ulimit -n 65535 可即时修改,但重启后就无效了。(注ulimit -SHn 65535 等效 ulimit -n 65535,-S指soft,-H指hard)
有如下三种修改方式:
1.在/etc/rc.local 中增加一行 ulimit -n 65535
2.在/etc/profile 中增加一行 ulimit -n 65535
3.在/etc/security/limits.conf最后增加如下两行记录
* soft nofile 65535
* hard nofile 65535
具体使用哪种,试试哪种有效吧,我在 CentOS中使用第1种方式无效果,使用第3种方式有效果,而在Debian中使用第2种有效果
——————————————————————————————————————————————————————————————
一)临时改变:
设置各linux 用户的最大进程数,下面我把某linux用户的最大进程数设为10000个:
ulimit -u 10000
ulimit -a
root@119.10.6.**:~# 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) 46661
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 65535 (因为是tcp协议 要打开套接字,要打开文件句柄,而单进程的最大打开文件句柄操作系统是有限制的,默认是1024)
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) unlimited
cpu time (seconds, -t) unlimited
max user processes (-u) 10000
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
二)永久性改变
解除 Linux 系统的最大进程数和最大文件打开数限制:
vi /etc/security/limits.conf
# 添加如下的行
* soft noproc 11000 #软连接
* hard noproc 11000 #硬连接
* soft nofile 4100
* hard nofile 4100
说明:* 代表针对所有用户,noproc 是代表最大进程数,nofile 是代表最大文件打开数
作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/7673/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
最后编辑: jackxiang 编辑于2014-12-7 00:12
评论列表