你应该知道的那些超时设置或默认参数 - 旁观者
2017-04-25 14:53
459 查看
存储介质
Redis
Java-Driver
Jedis
连接池:Jedis的连接池设计基于 Apache
Commons-Pool 原生库:
maxActive:可用连接实例的最大数目,默认值为8;
maxIdle:空闲连接实例的最大数目,默认值也是8;
minIdle:空闲连接实例的最小数目,默认值为0;
maxWait:等待可用连接的最大数目,单位毫秒,默认值为-1,表示永不超时。
mongodb
Server端的连接数
maxConns:mongodb 实例的最大连接数限制可以通过启动参数中的 maxConns
设置。默认值取决于系统的限制(如 ulimit 和 file descriptor)。如果没设置这个参数, mongodb 自己不会限制连接数。但,你不能设置超过 20,000 。
client端的连接
Java-Driver
MongoOptions.maxWaitTime:连接上阻塞线程的最大等待时间,默认值120秒;
MongoOptions.connectTimeout:建立新连接超时时间(郑昀注:
Only used for new connections), 默认无限制;
MongoOptions.socketTimeout:socket通讯超时时间,默认无限制;
MongoOptions.connectionsPerHost:每个Application与
MongoDB 实例能建立的最大物理连接数,默认是10;
MongoOptions.threadsAllowedToBlockForConnectionMultiplier:可以等待池中有连接可用的最大线程数,默认是5。
mysql
Server端的超时设置
innodb_lock_wait_timeout:一个 InnoDB 事务遇到一个行锁,等待的超时时间,默认值50秒,届时会打印“Lock wait timeout exceeded; try restarting transaction”错误;
wait_timeout:服务器关闭非交互连接之前等待活动的秒数,默认值28800秒(即8小时);
connect_timeout:在获取链接时,等待握手的超时时间,只在登录时有效,默认值10秒。
JDBC
ibatis
SqlMapConfig.xml 配置文件
maxTransactions:最大并发事务数。默认值为32。指的是同时进入 SqlMapClient.startTransaction()的最大线程数。大于这个值的线程将阻塞直到另一个线程退出。不同的 DBMS 有不同的限制值,但任何数据库都有这些限制。这个参数值应该总是小于或等于
maxSessions 并总是远远小于 maxRequests。减小这个参数值通常能提高性能;
maxRequests:最大并发请求数(Statement并发数)。默认值为512。指的是同时执行 SQL 语句的最大线程数。大于这个值的线程将阻塞直到另一个线程执行完成。不同的 DBMS有不同的限制值,但任何数据库都有这些限制。通常这个值应该至少是
maxTransactions 的 10 倍,并且总是大于 maxSessions 和 maxTranactions。减小这个参数值通常能提高性能;
maxSessions:最大Session 数。即当前最大允许的并发SqlMapClient数。maxSessions设定必须介于maxTransactions和maxRequests之间,即maxTransactions<maxSessions=<maxRequests。默认值为128。
defaultStatementTimeout:Statement 的执行超时时间,单位为秒。如果没有指明,查询将无超时时间限制,除非在映射文件中设置Statement属性值。
memcache
PHP-Driver
Memcache::connect 函数传入的 timeout 参数代表连接超时时间,单位秒。默认值1秒。郑昀注:修改此值之前请三思,过长的连接超时时间可能会导致失去所有的缓存优势。
Java-Driver
spymemcached
opTimeout :代表操作超时时间,默认值2.5秒;
xmemcahced
opTimeout 的定义与 spymemcached 一样,默认值1秒;
WebServer
Nginx
fastcgi_connect_timeout:同 FastCGI 服务器的连接超时时间,默认值60秒。郑昀注:它不能超过75秒。新请求在等待
fastcgi_connect_timeout 秒后就收到 504 Gateway Time-out 错误;
fastcgi_send_timeout: Nginx 进程向 FastCGI 进程发送 request ,整个过程的超时时间,默认值60秒;
fastcgi_read_timeout: FastCGI 进程向 Nginx 进程发送 response ,整个过程的超时时间,默认值60秒。
PHP
PHP-FPM 模式
max_execution_time 参数不太起效,它控制的是进程的CPU占用时间,默认值30秒;
郑昀注:set_time_limit()函数和配置指令max_execution_time只影响脚本本身执行的时间。任何发生在诸如使用 system()的系统调用,流操作,数据库操作等的脚本执行的最大时间不包括其中,当该脚本已运行。
真正起作用的是 php-fpm.conf 里的 <value name="request_terminate_timeout">0s</value>,它的含义是
The timeout (in seconds) for serving a single request after which the worker process will be terminated;默认值0,即off。
中间件
ActiveMQ
Server端设置
wireFormat.maxInactivityDuration:设置心跳时间,默认值是30秒;
initialReconnectDelay:第一次重连的时间间隔(毫秒),默认值为10;
maxReconnectDelay:最长重连的时间间隔(毫秒),默认值为30秒;
useExponentialBackOff:重连时间间隔是否以指数形式增长,默认值为true;
startupMaxReconnectAttempts:初始化时的最大重连次数。一旦连接上,将使用maxReconnectAttempts的配置,默认值为0;
maxReconnectAttempts:自版本5.6起:-1为默认值,代表不限重试次数;0代表从不重试(只尝试连接一次,并不重连)。5.6以前的版本:0为默认值,代表不限重试次数。所有版本:如果设置为大于0的数,代表最大重试次数;
randomize:使用随机链接(郑昀注:达到负载均衡的目的),默认值为true;
timeout:设置发送操作的总计最大超时时间(毫秒),默认值为-1。
生产者流量控制
触发条件有三个:
不管 mq 有无做持久化配置:
ActiveMQ所使用的内存到达 memoryUsage 配置值,默认值64MB;
如果 mq 做了持久化配置:
要打开了 useCache 开关,表明要将持久化消息缓存起来以便快速访问,默认是True;
缓存在内存中消息总字节数到达 memoryLimit 配置值,默认值是1MB;
Redis
Java-Driver
Jedis
连接池:Jedis的连接池设计基于 Apache
Commons-Pool 原生库:
maxActive:可用连接实例的最大数目,默认值为8;
maxIdle:空闲连接实例的最大数目,默认值也是8;
minIdle:空闲连接实例的最小数目,默认值为0;
maxWait:等待可用连接的最大数目,单位毫秒,默认值为-1,表示永不超时。
mongodb
Server端的连接数
maxConns:mongodb 实例的最大连接数限制可以通过启动参数中的 maxConns
设置。默认值取决于系统的限制(如 ulimit 和 file descriptor)。如果没设置这个参数, mongodb 自己不会限制连接数。但,你不能设置超过 20,000 。
client端的连接
Java-Driver
MongoOptions.maxWaitTime:连接上阻塞线程的最大等待时间,默认值120秒;
MongoOptions.connectTimeout:建立新连接超时时间(郑昀注:
Only used for new connections), 默认无限制;
MongoOptions.socketTimeout:socket通讯超时时间,默认无限制;
MongoOptions.connectionsPerHost:每个Application与
MongoDB 实例能建立的最大物理连接数,默认是10;
MongoOptions.threadsAllowedToBlockForConnectionMultiplier:可以等待池中有连接可用的最大线程数,默认是5。
mysql
Server端的超时设置
innodb_lock_wait_timeout:一个 InnoDB 事务遇到一个行锁,等待的超时时间,默认值50秒,届时会打印“Lock wait timeout exceeded; try restarting transaction”错误;
wait_timeout:服务器关闭非交互连接之前等待活动的秒数,默认值28800秒(即8小时);
connect_timeout:在获取链接时,等待握手的超时时间,只在登录时有效,默认值10秒。
JDBC
ibatis
SqlMapConfig.xml 配置文件
maxTransactions:最大并发事务数。默认值为32。指的是同时进入 SqlMapClient.startTransaction()的最大线程数。大于这个值的线程将阻塞直到另一个线程退出。不同的 DBMS 有不同的限制值,但任何数据库都有这些限制。这个参数值应该总是小于或等于
maxSessions 并总是远远小于 maxRequests。减小这个参数值通常能提高性能;
maxRequests:最大并发请求数(Statement并发数)。默认值为512。指的是同时执行 SQL 语句的最大线程数。大于这个值的线程将阻塞直到另一个线程执行完成。不同的 DBMS有不同的限制值,但任何数据库都有这些限制。通常这个值应该至少是
maxTransactions 的 10 倍,并且总是大于 maxSessions 和 maxTranactions。减小这个参数值通常能提高性能;
maxSessions:最大Session 数。即当前最大允许的并发SqlMapClient数。maxSessions设定必须介于maxTransactions和maxRequests之间,即maxTransactions<maxSessions=<maxRequests。默认值为128。
defaultStatementTimeout:Statement 的执行超时时间,单位为秒。如果没有指明,查询将无超时时间限制,除非在映射文件中设置Statement属性值。
memcache
PHP-Driver
Memcache::connect 函数传入的 timeout 参数代表连接超时时间,单位秒。默认值1秒。郑昀注:修改此值之前请三思,过长的连接超时时间可能会导致失去所有的缓存优势。
Java-Driver
spymemcached
opTimeout :代表操作超时时间,默认值2.5秒;
xmemcahced
opTimeout 的定义与 spymemcached 一样,默认值1秒;
WebServer
Nginx
fastcgi_connect_timeout:同 FastCGI 服务器的连接超时时间,默认值60秒。郑昀注:它不能超过75秒。新请求在等待
fastcgi_connect_timeout 秒后就收到 504 Gateway Time-out 错误;
fastcgi_send_timeout: Nginx 进程向 FastCGI 进程发送 request ,整个过程的超时时间,默认值60秒;
fastcgi_read_timeout: FastCGI 进程向 Nginx 进程发送 response ,整个过程的超时时间,默认值60秒。
PHP
PHP-FPM 模式
max_execution_time 参数不太起效,它控制的是进程的CPU占用时间,默认值30秒;
郑昀注:set_time_limit()函数和配置指令max_execution_time只影响脚本本身执行的时间。任何发生在诸如使用 system()的系统调用,流操作,数据库操作等的脚本执行的最大时间不包括其中,当该脚本已运行。
真正起作用的是 php-fpm.conf 里的 <value name="request_terminate_timeout">0s</value>,它的含义是
The timeout (in seconds) for serving a single request after which the worker process will be terminated;默认值0,即off。
中间件
ActiveMQ
Server端设置
wireFormat.maxInactivityDuration:设置心跳时间,默认值是30秒;
initialReconnectDelay:第一次重连的时间间隔(毫秒),默认值为10;
maxReconnectDelay:最长重连的时间间隔(毫秒),默认值为30秒;
useExponentialBackOff:重连时间间隔是否以指数形式增长,默认值为true;
startupMaxReconnectAttempts:初始化时的最大重连次数。一旦连接上,将使用maxReconnectAttempts的配置,默认值为0;
maxReconnectAttempts:自版本5.6起:-1为默认值,代表不限重试次数;0代表从不重试(只尝试连接一次,并不重连)。5.6以前的版本:0为默认值,代表不限重试次数。所有版本:如果设置为大于0的数,代表最大重试次数;
randomize:使用随机链接(郑昀注:达到负载均衡的目的),默认值为true;
timeout:设置发送操作的总计最大超时时间(毫秒),默认值为-1。
生产者流量控制
触发条件有三个:
不管 mq 有无做持久化配置:
ActiveMQ所使用的内存到达 memoryUsage 配置值,默认值64MB;
如果 mq 做了持久化配置:
要打开了 useCache 开关,表明要将持久化消息缓存起来以便快速访问,默认是True;
缓存在内存中消息总字节数到达 memoryLimit 配置值,默认值是1MB;
相关文章推荐
- 你应该知道的那些超时设置或默认参数
- 你应该知道的那些超时设置或默认参数
- 你应该知道的那些超时设置或默认参数
- 你应该知道的那些超时设置或默认参数
- 超时设置或默认参数 专题
- python:工厂函数应该全部设置默认参数
- Streams那些事之初始化参数设置
- winsock编程如何设置发送与接收超时参数?
- 设置GRUB默认启动系统及Menu.lst参数介绍
- 【分享】给函数设置 默认参数【C++源码】
- OLTP,OLAP和混合应用下oracle默认的不同的参数设置
- 关于useradd、adduser和userdel以及创建用户的默认参数设置
- 修改默认的undo_retention参数设置
- Reporting Services报表通过URL设置默认报表参数折叠
- PostgreSQL启动过程中的那些事九_十_十一:初始化活跃backend进程列表、创建opts文件、保持非默认GUC参数文件
- 动态设置Silverlight 初始化参数以及设置控件中设置默认.xaml 页面
- 黑马程序员.NET应该知道那些
- ServerXMLHTTP的超时设置(setTimeouts)参数含义 转帖
- 我是27岁改行进入IT的,那些总说该怎么样怎么样的人,应该知道怎么做了吧! 现在开始还不晚!
- 串行通讯如何设置超时参数