首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  程序员

求教: Linux 为什么限制线程数?TCP 连接数等

  •  
  •   6260628 · 100 天前 · 1683 次点击
    这是一个创建于 100 天前的主题,其中的信息可能已经有所发展或是发生改变。

    google 了几篇文章,全是上来直接教你改这些数据的文章,但是系统为什么有这个限制,以即改完之后会有什么影响,这些参数应该参考什么进行改完全没有,希望大神可以帮忙解答一下,感谢

    10 回复  |  直到 2019-07-09 16:35:39 +08:00
        1
    6260628   100 天前
    还是我搜的关键字不对.... 麻烦有经典文章的同学帮忙贴出来
        2
    Sanko   100 天前 via Android
    假如有 10w 个线程,怎么调度?
        3
    pkookp8   100 天前 via Android
    物理内存是有限的,越是修改线程栈空间大小,就会越发现物理内存是有限的。除非加内存
        4
    lihongjie0209   100 天前
    你觉得汽车为什么要限制人数
        5
    6260628   100 天前
    我知道限制肯定有限制的原因? 我想知道这里的道理和前因后果,跟据多大的内存有多少线程的限制,什么情况下我应该如何调整
        6
    vanxy   100 天前   ♥ 1
    https://stackoverflow.com/questions/344203/maximum-number-of-threads-per-process-in-linux

    大致意思是最大线程数是由最大内存控制的。
    反过来看, 限制最大线程的原因就是因为内存有限啊
        7
    Youen   100 天前   ♥ 1
        8
    wodexiaogou   100 天前   ♥ 1
    线程越多,进程占用资源越多,会导致系统资源耗尽直接宕机,所以要限制。
    大佬级别的会根据应用运行状况进行参数调配,让系统在正常情况下发挥最大的功能,这也就是系统调优软件调优了。
    再比如 Linux 有个著名的 fock 炸弹,它就是无限制生成子线程,无限制消耗系统资源,最终导致系统崩溃。
    :(){:|:&};:
    就是这个,可以在虚拟机上用普通账号测试,因为普通账号会对资源进行限制,当然也可能因为系统资源太小导致还没达到限制级别,自己就先崩溃了。
        9
    6260628   100 天前
    @Youen 看了您这篇文章让我恍然大悟,这些线程数据 /TCP 连接数量要跟据,系统运行的服务所做的事情到底是计算密集型和还是 IO 密集型来做一些平衡,居然参数要对该 linux 系统上运行的服务所做的事情架构要有清晰的了解,如果这个机器只是做 TCP 请求的转发,这时我应该把线程数和 TCP 连接数调大,至于多大,要在测试环境中做一个压力测试,如果我不仅是做 tCP 请求转发,而且对转发的数据做了一些处理,这时我就应该考虑把线程数调小一些,使线程切换的开销不会影响到性能,关键点:对 linux 跑的服务了解、性能测试
        10
    fghjghf   100 天前
    tcp 的 listen(全连接+半连接)。在 Linux 下是没有限制对,除非内存爆了。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2694 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 20ms · UTC 12:35 · PVG 20:35 · LAX 05:35 · JFK 08:35
    ♥ Do have faith in what you're doing.