zoukankan      html  css  js  c++  java
  • 查看线程数量

    查看进程状态

    • ps命令工具显示的是进程的瞬间状态,并不动态连续显示
      • 查看进程启动时间等参数:ps -eo pid,lstart,etime,cmd | grep knn
    • 如果想对进程状态进行实时监控应该用top命令

    查看线程数量

    • top -H -p pid

      • 开启线程查看
      • 在top运行时也可以通过按“H”键将线程查看模式切换为开或关
    • pstree -p pid

    • pstree -p | wc -l

    • ps -mq pid | wc -l

    • ps -efL

      • -L:显示线程信息(轻量级进程)
      • 包含LWP(线程ID)列和NLWP(线程数)
    • ps -L p pid; ps -L q pid

    • ps -L -C cmd; ps -T -C cmd

      • SPID与LWP:均轻量级进程(线程)的ID号
    • ps -eo pid,lstart,etime,cmd | grep XXX

      • -o选项与o选项用法:由用户自定义格式输出进程信息
      • 单-o选项只输出用户指定的字段下 当前用户会话 中打开的进程
      • 单纯使用o选项则输出用户指定的字段下 所有终端用户会话 中打开的进程。

    查看系统信息

    • 查看系统最大线程数
      • cat /proc/sys/kernel/threads-max

    创建线程失败的原因

    • 内存不足
    • ulimit的限制
      • max memory size:最大内存限制,在64位系统上通常都设置成unlimited
      • max user processes:每用户总的最大进程数(包括线程?why)
      • virtual memory: 虚拟内存限制,在64位系统上通常都设置成unlimited
    • 参数sys.kernel.threads-max限制
      • 系统全局的总线程数限制,如上
    • 参数sys.kernel.pid_max限制
      • 系统全局的PID号数值的限制
    • 参数sys.vm.max_map_count限制
      • 单个程序所能使用内存映射空间的数量限制
    $ ulimit -a
    core file size          (blocks, -c) unlimited
    data seg size           (kbytes, -d) unlimited
    scheduling priority             (-e) 0
    file size               (blocks, -f) unlimited
    pending signals                 (-i) 514529
    max locked memory       (kbytes, -l) 64
    max memory size         (kbytes, -m) unlimited
    open files                      (-n) 655350
    pipe size            (512 bytes, -p) 8
    POSIX message queues     (bytes, -q) 819200
    real-time priority              (-r) 0
    stack size              (kbytes, -s) 8192
    cpu time               (seconds, -t) unlimited
    max user processes              (-u) 514529
    virtual memory          (kbytes, -v) unlimited
    file locks                      (-x) unlimited
    
    $ cat /proc/sys/kernel/threads-max
    1029059
    
    $ cat /proc/sys/kernel/pid_max
    4194303
    
    $ cat /proc/sys/vm/max_map_count
    65530
    

    top

    free

    du

    df

    代码问题

    • 进程下的线程有3000+

    修改limits.conf —— 血的教训

    • 修改 /etc/security/limits.conf
    • 在./bashrc中添加ulimit -u 355350
    • 最后导致无法

    参考资料

    linux中高并发socket最大连接数的优化详解
    Linux下查看某个进程的线程数量
    Linux查看某个进程的线程
    查看进程之ps命令
    Linux最大线程数及最大进程数
    Linux最大线程数限制及当前线程数查询
    浅谈系统线程数限制
    Linux中top显示的信息详解

  • 相关阅读:
    基本数据类型
    运算
    登录程序
    MySQL索引
    内存泄漏排查&CPU负载高排查
    dubbo
    SPI
    缓存,热点key
    Java BigDecimal
    Spring Bean's life
  • 原文地址:https://www.cnblogs.com/wangzhiyi/p/9750948.html
Copyright © 2011-2022 走看看