zoukankan      html  css  js  c++  java
  • linux线程数限制与zabbix监控

     

    Linux最大线程数限制及当前线程数查询

    最大线程数计算方式:

    n = total_memory/128k;

    Linux用户线程数限制而导致的程序异常为 java.lang.OutOfMemoryError:unable to create new native thread

    查询系统支持的最大进程数与线程数,一般会很大,相当于理论值

    /proc/sys/kernel/pid_max

    /proc/sys/kernel/threads-max

    系统限制某用户下最多可以运行多少进程或线程

    当前用户可用最大线程数:ulimit -u

    想要修改这个值:
    centos 6.*可以修改/etc/security/limits.d/90-nproc.conf
    centos 7.*可以修改/etc/security/limits.d/20-nproc.conf

    查询当前某程序的线程或进程数

    # pstree -p `ps -e | grep java | awk '{print $1}'` | wc -l

    # pstree -p 进程号 | wc -l

    上面用的是管道,关于管道:管道符号"|"左边命令的输出作为右边命令的输入

    查询当前整个系统已用的线程或进程数

    pstree -p | wc -l

    以上参考https://www.cnblogs.com/nizuimeiabc1/p/5593637.html

    zabbix监控当前使用线程数

    客户端:使用pstree -p | wc -l为键值

    pstree以树结构显示进程,是linux很有用的一个命令,可打印系统当前各个进程父子关系。但是centos7默认并没有安装pstree,所以会有pstree:command not found
    实际上在linux平台要安装psmisc包,安装方式使用命令即可:yum install psmisc -y

    增加自定义监控项的键值:echo "UserParameter=thread.num,pstree -p | wc -l" >> /etc/zabbix/zabbix_agentd.conf

    然后重启zabbix_agentd客户端

    服务端:在Template OS Linux模板中添加监控项与触发器,阀值8000

     

    测试,服务端get一下数据,看能不能拿到

    /usr/local/zabbix/bin/zabbix_get -s xxx.xxx.xxx.xxx -p 10050 -k 'thread.num'

    把阀值临时设为200,看能不能接到告警邮件

  • 相关阅读:
    函数式宏定义与普通函数
    linux之sort用法
    HDU 4390 Number Sequence 容斥原理
    HDU 4407 Sum 容斥原理
    HDU 4059 The Boss on Mars 容斥原理
    UVA12653 Buses
    UVA 12651 Triangles
    UVA 10892
    HDU 4292 Food
    HDU 4288 Coder
  • 原文地址:https://www.cnblogs.com/xulan0922/p/9987979.html
Copyright © 2011-2022 走看看