连接数

linux、windows最大连接数

匿名 (未验证) 提交于 2019-12-02 21:59:42
一、理论知识 (文章来源: http://www.cnblogs.com/zwq194/archive/2012/12/14/2817673.html ) Socket 编程时,单机最多可以建立多少个 TCP 连接,受到操作系统的影响。 [HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Tcpip \Parameters] TcpNumConnections = 0x00fffffe (Default = 16,777,214) 最大动态端口数 TCP客户端和服务器连接时,客户端必须分配一个动态端口,默认情况下这个动态端口的分配范围为 1024-5000 ,也就是说默认情况下,客户端最多可以同时发起3977 个Socket 连接。我们可以修改如下注册表来调整这个动态端口的范围 [HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Tcpip \Parameters] MaxUserPort = 5000 (Default = 5000, Max = 65534) 最大TCB 数量 系统为每个TCP 连接分配一个TCP 控制块(TCP control block or TCB),这个控制块用于缓存TCP连接的一些参数,每个TCB需要分配 0.5

修改linux系统TCP连接数

匿名 (未验证) 提交于 2019-12-02 21:56:30
修改linux系统TCP连接数 centOS 6.x (1)vi /etc/sysctl.conf (2)添加参数   net.nf_conntrack_max = 655360 (3)sysctl -p centOS 7.x (1)vi /etc/sysctl.conf (2)添加参数   net.ipv4.ip_conntrack_max = 65536 (3)sysctl -p   这里x是指针的bit数,(例如,32或者64bit) 例如:一个32位的带512M内存的PC在默认情况下能够处理512*1024*1024/16384/(32/32)=32768个并发的netfilter连接。 文章来源: 修改linux系统TCP连接数

解决mysql 1040错误Too many connections的方法

孤街浪徒 提交于 2019-12-02 21:48:56
从官方文档知道linux上面编译安装的mysql默认的连接为100个,这样对于网站的需求来说是远远不够的。 mysql官方告诉我们需要修改max_connections的值,那么我们怎么去修改呢?有两种方法 1、修改配置文件文件 修改/etc/my.cnf这个文件,在[mysqld]中新增max_connections=N,如果你没有这个文件请从编译源码中的support-files文件夹中复制你所需要的*.cnf文件为到/etc/my.cnf。我使用的是my-medium.cnf,中型服务器配置。例如我的[mysqld]的内容如下 代码如下: [mysqld] port = 3306 socket = /tmp/mysql.sock skip-locking key_buffer = 160M max_allowed_packet = 1M table_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M max_connections=1000 由于对mysql还不是很熟悉,所以很多参数没有修改。哈哈。。 2、非使用mysqld脚本自动启动的用户。 修改

Nginx工作原理

痞子三分冷 提交于 2019-12-02 21:43:56
1.Nginx基本组成 一个Master和多个worker,master作为管理者,worker作为工作执行者; 工作模式:Master接收到请求信号,向空闲的worker发送信号,worker进行 争抢 信号进行工作 2.一个master多个worker的优势 a)可以使用 nginx –s reload 热部署,利用 nginx 进行热部署操作; b)每个worker作为单独的进程,单个worker停止工作不会影响其他线程继续争抢,从而应用不会停止服务; 3.worker如何设置? worker 数和服务器的 cpu 数相等较为适宜,防止设置过多进行cup的切换 4.连接数worker_connection a)发送请求,占用了 woker 的几个连接数? 请求静态资源(2个)、反向代理请求动态资源(4个) b)nginx 有一个 master,有四个 woker,每个 woker 支持最大的连接数 1024,支持的最大并发数是多少? 普通的静态访问最大并发数是: worker_connections * worker_processes /2,而如果是 HTTP 作 为反向代理来说,最大并发数量应该是 worker_connections *worker_processes/4; 来源: https://www.cnblogs.com/vincentYw/p/11763566

线程池和数据库连接池的原理与使用

好久不见. 提交于 2019-12-02 19:10:02
线程池的原理: 来看一下线程池究竟是怎么一回事?其实线程池的原理很简单,类似于操作系统中的缓冲区的概念,它的流程如下:先启动若干数量的线程,并让这些线程都处于睡眠状态,当客户端有一个新请求时,就会唤醒线程池中的某一个睡眠线程,让它来处理客户端的这个请求,当处理完这个请求后,线程又处于睡眠状态。可能你也许会问:为什么要搞得这么麻烦,如果每当客户端有新的请求时,我就创建一个新的线程不就完了?这也许是个不错的方法,因为它能使得你编写代码相对容易一些,但你却忽略了一个重要的问题??性能!一个省级数据大集中的银行网络中心,高峰期每秒的客户端请求并发数超过100,如果为每个客户端请求创建一个新线程的话,那耗费的CPU时间和内存将是惊人的,如果采用一个拥有200个线程的线程池,那将会节约大量的的系统资源,使得更多的CPU时间和内存用来处理实际的商业应用,而不是频繁的线程创建与销毁。 数据库连接池: 数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。 一个数据库连接对象均对应一个物理数据库连接,每次操作都打开一个物理连接,使用完都关闭连接,这样造成系统的 性能低下。 数据库连接池的解决方案是在应用程序启动时建立足够的数据库连接,并讲这些连接组成一个连接池( 简单说:在一个“ 池”里放了好多半成品的数据库联接对象),由应用程序动态地对池中的连接进行申请、使用和释放

引用 Tomcat中的几点配置技巧

情到浓时终转凉″ 提交于 2019-12-02 18:19:54
引用 【轰隆隆】 的 Tomcat中的几点配置技巧 1,加大tomcat连接数 在tomcat配置文件server.xml中的配置中,和连接数相关的参数有: minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为10 maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为75 acceptCount:允许的最大连接数,应大于等于maxProcessors,默认值为100 enableLookups:是否反查域名,取值为:true或false。为了提高处理能力,应设置为false connectionTimeout:网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。 其中和最大连接数相关的参数为maxProcessors和acceptCount。如果要加大并发连接数,应同时加大这两个参数。 web server允许的最大连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右。Unix中如何设置这些参数,请参看另一篇Unix常用监控和管理命令 tomcat4中的配置示例: port="8080" minProcessors="10" maxProcessors="1024" enableLookups="false" redirectPort=

nginx.conf详解

不羁的心 提交于 2019-12-02 18:11:12
nginx.conf详解 定义Nginx运行的用户和用户组 user www www; nginx进程数,建议设置为等于CPU总核心数。 worker_processes 8; 全局错误日志定义类型,[ debug | info | notice | warn | error | crit ] error_log ar/loginx/error.log info; 进程文件 pid ar/runinx.pid; 一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(系统的值ulimit -n)与nginx进程数相除,但是nginx分配请求并不均匀,所以建议与ulimit -n的值保持一致。 worker_rlimit_nofile 65535; 工作模式与连接数上限 events { 参考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll模型是Linux 2.6以上版本内核中的高性能网络I/O模型,如果跑在FreeBSD上面,就用kqueue模型。 use epoll; 单个进程最大连接数(最大连接数=连接数*进程数) worker_connections 65535; } 设定http服务器 http { include mime.types; #文件扩展名与文件类型映射表

HikariCP监控指标介绍和应用

余生颓废 提交于 2019-12-02 16:59:33
概述 HikariCP提供了一些监控指标,他的监控指标都是基于MicroMeter提供出来的,然后支持Prometheus和Dropwizard。本次我们将讨论一下HikariCp的监控指标有哪些,为什么提供这些指标,以及咱们如何去做监控。 监控指标 就像 com.zaxxer.hikari.metrics.PoolStats 提供的那样,几个重要的指标都存储在poolState中。 totalConnections 总连接数,包括空闲的连接和使用中的连接。 idleConnections 空闲连接数 activeConnections 活跃连接数 totalConnections = activeConnection + idleConnections pendingThreads 正在等待连接的线程数量。排查性能问题时,这个指标是一个重要的参考指标,如果正在等待连接的线程在相当一段时间内数量较多,可以考虑扩大数据库连接池的size。(即HikariCP的maxPoolSize) maxConnections 最大连接数,统计指标,统计到目前为止连接的最大数量。 minConnections 最小连接数,统计指标,统计到目前为止连接的最小数量。 usageTime 每个连接使用的时间,当连接被回收的时候会记录此指标: com.zaxxer.hikari.pool

redis-JedisPoolConfig配置

独自空忆成欢 提交于 2019-12-02 11:19:22
JedisPoolConfig config = new JedisPoolConfig(); //连接耗尽时是否阻塞, false报异常,ture阻塞直到超时, 默认true config.setBlockWhenExhausted(true); //设置的逐出策略类名, 默认DefaultEvictionPolicy(当连接超过最大空闲时间,或连接数超过最大空闲连接数) config.setEvictionPolicyClassName("org.apache.commons.pool2.impl.DefaultEvictionPolicy"); //是否启用pool的jmx管理功能, 默认true config.setJmxEnabled(true); //MBean ObjectName = new ObjectName("org.apache.commons.pool2:type=GenericObjectPool,name=" + "pool" + i); 默 认为"pool", JMX不熟,具体不知道是干啥的...默认就好. config.setJmxNamePrefix("pool"); //是否启用后进先出, 默认true config.setLifo(true); //最大空闲连接数, 默认8个 config.setMaxIdle(8); //最大连接数,