最近在维护论坛,论坛的构建是linux nginx+php5.3+mysql5.1。最近一段时间老是出现问题,刚开始由于php版本以及设置的问题还有以前老版本留下的问题,使得论坛老被挂马,找了一个星期的问题,各处都补漏了一下的!php也升级了一下!
刚升级完,各种问题就来了,论坛上传不 了图片,论坛后台代码溢出,论坛http500错误。一大堆问题让人头痛。经过几天的研究,在*NIX将TCP/IP也作为文件来访问,而一般系统默认的访问文件数是1024。如果是在运营级别服务器上面就需要调整系统的最大访问文件数来提高网络并发性能。此原因老是导致http500内部服务器错误,修改一下访问文件数。调整方法就是ulimit命令,比如ulimit -SHn 65535。
下面是ulimit设置的参数与相关的注意事项
ulimit 参数介绍:
-H 设置硬件资源限制.
-S 设置软件资源限制.
-a 显示当前所有的资源限制.
-c size:设置core文件的最大值.单位:blocks
-d size:设置数据段的最大值.单位:kbytes
-f size:设置创建文件的最大值.单位:blocks
-l size:设置在内存中锁定进程的最大值.单位:kbytes
-m size:设置可以使用的常驻内存的最大值.单位:kbytes
-n size:设置内核可以同时打开的文件描述符的最大值.单位:n
-p size:设置管道缓冲区的最大值.单位:kbytes
-s size:设置堆栈的最大值.单位:kbytes
-t size:设置CPU使用时间的最大上限.单位:seconds
-v size:设置虚拟内存的最大值.单位:kbytes
一般可以设置 ulimit -SHn 65535
请注意,该命令只在当前shell环境下有效,而且只能由root权限来设置,一般可以放在需要启动服务的命令脚本里,另外,如果你是用root登录来启动服务的话,防止忘记这条命令,一般可以设置在~/.root 下的 .bash_profile 文件或者/etc/rc.local文件中,不建议在/etc/profile 中设置,因为该命令只有root用户有权限将数字增加到超过系统默认的上限(比如 -n 打开文件数 1024 )。