linux下普通用户最大允许使用线程数为1024; 但是并发量大时,该1024配置项远远不够满足我们的需要,我们可以修改/etc/security/limits.d/90-nproc.conf配置设置用户使用线程 ...
分类:
编程语言 时间:
2018-01-01 20:39:57
阅读次数:
157
类似于Web服务器这种多任务情况时,不可能只用一个线程来对外提供服务。这样效率和吞吐量都太低。 但是也不能来一个请求就创建一个线程,因为创建线程的成本很高,系统能创建的线程数量是有限的。 于是Executor就出现 了。 Executor框架 线程池的意义 线程创建太少了浪费服务器资源,另外线程创建 ...
分类:
编程语言 时间:
2018-01-01 16:52:42
阅读次数:
136
一、需要了解的方法 Thread实例对象的方法 # isAlive(): 判断这个线程是否是存活的 # getName(): 获取线程名 # setName(): 设置线程名 #enumerate(): 查看活跃进程对象 #activeCount(): 查看活跃的线程数 二、current_thre ...
分类:
编程语言 时间:
2017-12-31 18:35:14
阅读次数:
162
Thread是python中的一个多线程类,我们可以通过给它传递target函数或者创建一个自己的类来继承Thread来使用他。queue是python中的一个消息队列,它实现了python中线程数据的共享,并解决了传统多线程需要对共享数据上锁,解锁的问题,极大的方便了我们的多线程变成。通过Thre ...
分类:
编程语言 时间:
2017-12-30 15:58:29
阅读次数:
149
网络和IO线程配置优化 配置参数 num.network.threads:Broker处理消息的最大线程数 num.io.threads:Broker处理磁盘IO的线程数 优化建议 一般num.network.threads主要处理网络io,读写缓冲区数据,基本没有io等待,配置线程数量为cpu核数 ...
分类:
其他好文 时间:
2017-12-29 12:15:35
阅读次数:
228
CPU总核数 = 物理CPU个数 * 每颗物理CPU的核数 总逻辑CPU数 = 物理CPU个数 * 每颗物理CPU的核数 * 超线程数 这些都代表什么,那就请看CPU架构 多个物理CPU,CPU通过总线进行通信,效率比较低,如下: 多核CPU,不同的核通过L2 cache进行通信,存储和外设通过总线 ...
分类:
系统相关 时间:
2017-12-25 19:29:50
阅读次数:
447
一、需求缘起 Web-Server通常有个配置,最大工作线程数,后端服务一般也有个配置,工作线程池的线程数量,这个线程数的配置不同的业务架构师有不同的经验值,有些业务设置为CPU核数的2倍,有些业务设置为CPU核数的8倍,有些业务设置为CPU核数的32倍。 “工作线程数”的设置依据是什么,到底设置为 ...
分类:
编程语言 时间:
2017-12-25 15:37:10
阅读次数:
191
转自:https://www.cnblogs.com/caosiyang/archive/2012/10/15/2724585.html 有些时候需要确实进程内部当前运行着多少线程,那么以下几个方法值得一用。 1.根据进程号进行查询: # pstree -p 进程号 # top -Hp 进程号 2.... ...
分类:
编程语言 时间:
2017-12-23 15:45:09
阅读次数:
167
我们之前使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线 ...
分类:
编程语言 时间:
2017-12-22 15:59:16
阅读次数:
213
当我们使用top命令查看系统的资源使用情况时会看到 load average,如下图所示。它表示系统在1、5、15分钟的平均工作负载。那么什么是负载(load)呢?它和CPU的利用率又有什么关系呢? load average:系统平均负载是CPU的Load,它所包含的信息不是CPU的使用率状况,而是 ...
分类:
编程语言 时间:
2017-12-21 21:48:11
阅读次数:
270