zoukankan      html  css  js  c++  java
  • zabbix监控kernel.pid_max

    为什么要监控kernel.pid_max呢?以下这个案例来解答这个问题

    有台生产环境的服务器down了,ssh连接不上去。就在准备去重启该机器的时候,突然又可以ssh登录了。但是只有一个同事成功登录,其他人依然无法连接。在成功登录的同事终端上执行任何命令,都会报如下错误:
    # free
    -bash: fork: Cannot allocate memory

    后来多试验几次,偶尔能执行成功:

    # free
    total used free shared buff/cache available
    Mem: 7814784 340028 6688016 9488 786740 7244604
    Swap: 2097148 0 2097148

    可以看出memory还有很多,不可能是内存耗尽问题。

    当时想不通是啥情况。 今天查询资料无意中发现:当环境中有过多process,超过pid max可能会导致这个报错。

    1.  查询pid_max值并修改(原来值挺大,为了测试改小点)

    # sysctl -w kernel.pid_max=500
    kernel.pid_max = 500

    64位系统上pid_max最大值为2^22,32位系统上最大值为32768

    优化系统参数也只能临时解决一些问题,实际生产中开发和测试环境的机器会被很多开发和人员使用,会出现一些linux系统瓶颈问题。这个时候靠优化一些系统参数并不能解决问题,但是我们可以使用监控来提前发现可能出现的问题,然后提前登录机器释放出来一些资源使服务能够平稳运行

    具体的监控步骤如下:

    1、创建应用集:

    再已有的模板中创建一个应用集《PID使用率》

    2、创建监控项:

    为了方便理解把kernel.pid_max的监控项拆分成了三个监控项《PID最多可用数量,PID当前已使用数量,PID当前使用率百分比》,为了方便管理将三个监控项都关联到应用集《PID使用率》 

     3:创建触发器:

  • 相关阅读:
    MyBatis动态SQL语句
    MyBatis分页
    理解 Linux 的处理器负载均值
    Linux命令之du
    Linux命令之df
    Linux命令之lsof
    maven打包加时间戳
    多线程学习-ListenableFuture使用介绍以及示例
    Host is not allowed to connect to this MySQL server解决方法
    Dapper,大规模分布式系统的跟踪系统
  • 原文地址:https://www.cnblogs.com/suyj/p/15404452.html
Copyright © 2011-2022 走看看