正在加载……
Can't create TCP/IP socket
| |
Posted in LAMP on December 13, 2007 / 引用(0)
FATAL: error 2004: Can't create TCP/IP socket (24)

使用sysbench测试MySQL最大并发连接,出现上面的错误。原因是操作系统对一个进程打开的文件句柄数量有限制,其中包含打开的SOCKET数量。

ulimit -a
core file size        (blocks, -c) 0
data seg size         (kbytes, -d) unlimited
file size             (blocks, -f) unlimited
max locked memory     (kbytes, -l) 4
max memory size       (kbytes, -m) unlimited
open files                    (-n) 1024
pipe size          (512 bytes, -p) 8
stack size            (kbytes, -s) 1024
cpu time             (seconds, -t) unlimited
max user processes            (-u) 7168
virtual memory        (kbytes, -v) unlimited

注意上面open files是1024,因此我发现当建立了1024个连接之后就会报错。

这个值通常不能用ulimit命令来改(除非是在root下测试)。需要修改/etc/security/limits.conf,增加如:
gulei hard nofile 16384
gulei soft nofile 16384

最左侧是用户名,即对gulei用户进程打开文件的限制。
这样设置以后,如果是用ssh登录的,可能还无法生效。需要再执行一下su $USER才能生效。
比如:
ulimit -a

core file size        (blocks, -c) 0
data seg size         (kbytes, -d) unlimited
file size             (blocks, -f) unlimited
max locked memory     (kbytes, -l) 4
max memory size       (kbytes, -m) unlimited
open files                    (-n) 1024
pipe size          (512 bytes, -p) 8
stack size            (kbytes, -s) 1024
cpu time             (seconds, -t) unlimited
max user processes            (-u) 7168
virtual memory        (kbytes, -v) unlimited

su $USER
Password:

ulimit -a

core file size        (blocks, -c) 0
data seg size         (kbytes, -d) unlimited
file size             (blocks, -f) unlimited
max locked memory     (kbytes, -l) 4
max memory size       (kbytes, -m) unlimited
open files                    (-n) 16384
pipe size          (512 bytes, -p) 8
stack size            (kbytes, -s) 1024
cpu time             (seconds, -t) unlimited
max user processes            (-u) 7168
virtual memory        (kbytes, -v) unlimited
This entry comes from 本站原创 and has been read for 388 times.It is tagged with .
发表评论

昵称

网址

电邮

OpenID登入 高级选项 表情