一、修改最大连接数
1、查看当前文件描述符的限制数目的命令:
ulimit -n
2、修改文件描述符的限制数目
2.1 临时改变当前会话:
ulimit -n 65536
2.2 永久变更需要下面两个步骤:
1) 修改/etc/security/limits.conf 文件(不要忘记前面的*),如下:
vi /etc/security/limits.conf
*               soft    nofile           570000
*               hard    nofile           570000
保存退出后重新登录,其最大文件描述符已经被永久更改了;但是需要经过下面的步骤2)之后才能生效。
2) 重新加载库:
打开文件:
vi /etc/pam.d/login
在最后加上:
session    required /lib64/security/pam_limits.so
即可
3.查看和修改系统的最大打开文件限制
位置: /proc/sys/fs/file-max
查看命令
 cat /proc/sys/fs/file-max
修改:
通过vi修改 /etc/sysctl.conf 文件,在该文件中加上:
fs.file-max=655350
可以在令针对此参数 的修改一直生效,在该文件中,修改完后执行命令:
sysctl -p
使修改立即生效,而无需重启;
可使用下面两条命令验证一下修改是否成功:
cat /proc/sys/fs/file-max
或者
sysctl fs.file-max
4.修改nr_open,通过vi修改 /etc/sysctl.conf,在该文件中加上:
fs.nr_open = 2000000
可以在令针对此参数 的修改一直生效,在该文件中,修改完后执行命令:
sysctl -p
使修改立即生效,而无需重启;
注意:

a.    所有进程打开的文件描述符数不能超过/proc/sys/fs/file-max

b.    单个进程打开的文件描述符数不能超过user limit中nofile的soft limit

c.    nofile的soft limit不能超过其hard limit

d.    nofile的hard limit不能超过/proc/sys/fs/nr_open

二、修改端口限制
主要是对内核参数sysctl.conf的优化,/etc/sysctl.conf 是用来控制linux网络的配置文件,对于依赖网络的程序(如web服务器和cache服务器)非常重要,RHEL默认提供的最好调整。推荐配置(把下面内容添加进去):
  

net.ipv4.ip_local_port_range = 1024 65535
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_window_scaling = 0
net.ipv4.tcp_sack = 0
net.core.netdev_max_backlog = 30000
net.ipv4.tcp_no_metrics_save = 1
net.core.somaxconn = 22144
net.ipv4.tcp_syncookies = 0
net.ipv4.tcp_max_orphans = 262144
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2
vm.overcommit_memory = 1
fs.file-max = 2000000
fs.nr_open = 2000000

 
  这个配置参考于cache服务器varnish的推荐配置和SunOne 服务器系统优化的推荐配置。这里有个对端口范围的限制如果不做修改原始的返回只有2.8万个port区间。
对上述内存参数的具体操作命令示例:
1)查看端口范围:
[root@slave2 sub_client]# sysctl -a | grep range
net.ipv4.ip_local_port_range = 1024 65000
2)修改内核参数sysctl.conf,打开该文件,
vi /etc/sysctl.conf
如果文件中有参数net.ipv4.ip_local_port_range的配置,则将其修改为:
net.ipv4.ip_local_port_range = 1024 65000
否则,直接加上这句话。
3)让配置立即生效:
sysctl -p
另外,端口范围参数net.ipv4.ip_local_port_range不要超过1024和65535,1024以下系统使用,65535以上设置会会提示失败:
error: "Invalid argument" setting key "net.ipv4.ip_local_port_range"

三、查看linux下虚拟内存情况

    使用命令free,例如:

[root@cddserver1 log_rd]# free
                  total               used        free          shared    buffers     cached
Mem:       7950788    1144080    6806708          0       51432      832588
-/+ buffers/cache:     260060      7690728
Swap:      8093688       9764         8083924

-------------------------------------------------

在linux kernel 2.6.25之前通过ulimit -n(setrlimit(RLIMIT_NOFILE))设置每个进程的最大打开文件句柄数不能超过NR_OPEN (1024*1024),也就是100多w(除非重新编译内核),而在25之后,内核导出了一个sys接口可以修改这个最大值(/proc/sys/fs /nr_open).具体的changelog

查看、修改linux系统的最大链接数限制、文件描述符限制、端口范围限制、虚拟内存等的更多相关文章

  1. 自学Linux Shell14.2-在脚本中使用其他文件描述符

    点击返回 自学Linux命令行与Shell脚本之路 14.2-在脚本中使用其他文件描述符 在脚本中重定向输入和输出,并布局限于以上讲的3个默认的文件描述符,shell最多可以有9个打开的文件描述符.这 ...

  2. 修改linux系统用户最大线程数限制

    linux系统对线程数量有个最大限制,当达到系统限制的最大线程数时使用账号密码ssh到系统时是无法登陆的,会报Write failed: Broken pipe,或者是shell request fa ...

  3. Linux最大打开文件描述符数

    1.    系统最大打开文件描述符数:/proc/sys/fs/file-max a.    查看 $ cat /proc/sys/fs/file-max 186405 2. 设置 a.    临时性 ...

  4. [性能分析]linux文件描述符(转)

    1.什么是文件和文件描述符 Linux中文件可以分为4种:普通文件.目录文件.链接文件和设备文件.1.普通文件是用户日常使用最多的文件,包括文本文件.shell脚本.二进制的可执行和各种类型的数据.l ...

  5. [性能分析]linux文件描述符

    1.什么是文件和文件描述符 Linux中文件可以分为4种:普通文件.目录文件.链接文件和设备文件.1.普通文件是用户日常使用最多的文件,包括文本文件.shell脚本.二进制的可执行和各种类型的数据.l ...

  6. linux文件描述符fd(windows下的句柄)

    在Linux系统中一切皆可以看成是文件,文件又可分为:普通文件.目录文件.链接文件和设备文件 fd:file descriptor 文件描述符0,1,2分别给了标准输入.标准输出和错误输出. ls - ...

  7. linux 最大文件描述符fd

    使用四种框架分别实现百万websocket常连接的服务器 著名的 C10K 问题提出的时候, 正是 2001 年.这篇文章可以说是高性能服务器开发的一个标志性文档,它讨论的就是单机为1万个连接提供服务 ...

  8. linux专题一之文件描述符、重定向、管道符、tee命令

    本节讨论一下几个问题: 1. 文件描述符. 2. 重定向. 3. 管道符 4. tee的用法. 1. 文件描述符. 在linux系统中一切皆文件.文件夹和设备都是文件.如何用来区别不同的文件呢?这里的 ...

  9. linux文件描述符数量的坑

    ulimit -n  查看 单进程或线程,可打开的最大文件描述符数 通过ulimit -n 10240 设置文件描述符数: (当前shell生效,这真是个坑啊) 永久生效:(需要重启系统,也是个坑,好 ...

随机推荐

  1. HDU 1018 Big Number(数论,Stirling公式)

    1. 利用数学公式lg(n!)=lg(2)+lg(3)+....+lg(n) 求解 2.

  2. HDU 2503 (数论,最大公约数)

    a/b + c/d Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  3. python 2 控制台传参,解包,编码问题初探

    python 2 控制台传参,需要从sys模块中导入argv,argv返回的第一个参数当前脚本(script)的文件名,后面是参数,参数个数必须和解包(unpack)时使用的参数个数一致 1.本例子演 ...

  4. Python与数据结构[4] -> 散列表[1] -> 分离链接法的 Python 实现

    分离链接法 / Separate Chain Hashing 前面完成了一个基本散列表的实现,但是还存在一个问题,当散列表插入元素冲突时,散列表将返回异常,这一问题的解决方式之一为使用链表进行元素的存 ...

  5. 1、Flask实战第1天:第一个Flask程序

    Flask是流行的python web框架...(* ̄︶ ̄) 零基础到企业级论坛实战,人生苦短,我用python,开启FLask之旅吧... 安装开发环境 下载Python win版安装包 双击运行, ...

  6. HashMap源码分析(Java8)

    1. HashMap public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, ...

  7. FrameLayout 布局

    (一) 1.效果图:颜色一直在改变,实现霓虹灯的效果 2.activity_main.xml <?xml version="1.0" encoding="utf-8 ...

  8. 继承了母板页的onload的事件

    这段时间实在是太忙了, 现借国庆放假之际,把一些问题写一下, 不久前,有位网友问我继承了母版页的页面要加载body的onload事件如何加载,我以前刚开始用母板的时候也碰到过这种问题, 直接是用JAV ...

  9. 狗日的Javascript中的闭包

    前面的话: 闭包,是 javascript 中重要的一个概念,对于初学者来讲,闭包是一个特别抽象的概念,特别是ECMA规范给的定义,如果没有实战经验,你很难从定义去理解它.下面是作者从作用域链慢慢讲到 ...

  10. VisualSVN设置提交时必须输入log信息

    在别人的基础上修改的: 自己在Windows上用VisualSVN搭了个服务器,默认提交代码是可以不填任何信息,这可不是我所期望的,于是找到了下面的解决方案: 在VisualSVN的管理控制台中可以设 ...