文档章节

你应该知道的那些超时设置或默认参数

旁观者-郑昀
 旁观者-郑昀
发布于 2013/06/19 19:12
字数 1406
阅读 336
收藏 11
郑昀总结
最后 更新于2013年6月19日
  • 存储介质
    • Redis
      • Java-Driver
        • Jedis
          • 连接池:Jedis的连接池设计基于 Apache Commons-Pool 原生库:
            1. maxActive:可用连接实例的最大数目,默认值为8;
            2. maxIdle:空闲连接实例的最大数目,默认值也是8;
            3. minIdle:空闲连接实例的最小数目,默认值为0;
            4. maxWait:等待可用连接的最大数目,单位毫秒,默认值为-1,表示永不超时。
    • mongodb
      • Server端的连接数
        • maxConns:mongodb 实例的最大连接数限制可以通过启动参数中的 maxConns 设置。默认值取决于系统的限制(如 ulimit 和 file descriptor)。如果没设置这个参数, mongodb 自己不会限制连接数。但,你不能设置超过 20,000 。
      • client端的连接
        • Java-Driver
          1. MongoOptions.maxWaitTime:连接上阻塞线程的最大等待时间,默认值120秒;
          2. MongoOptions.connectTimeout:建立新连接超时时间(郑昀注: Only used for new connections), 默认无限制;
          3. MongoOptions.socketTimeout:socket通讯超时时间,默认无限制;
          4. MongoOptions.connectionsPerHost:每个Application与 MongoDB 实例能建立的最大物理连接数,默认是10;
          5. MongoOptions.threadsAllowedToBlockForConnectionMultiplier:可以等待池中有连接可用的最大线程数,默认是5。
    • mysql
      • Server端的超时设置
        1. innodb_lock_wait_timeout:一个 InnoDB 事务遇到一个行锁,等待的超时时间,默认值50秒,届时会打印“Lock wait timeout exceeded; try restarting transaction”错误;
        2. wait_timeout:服务器关闭非交互连接之前等待活动的秒数,默认值28800秒(即8小时);
        3. connect_timeout:在获取链接时,等待握手的超时时间,只在登录时有效,默认值10秒。
      • JDBC
        • ibatis
          • SqlMapConfig.xml 配置文件
            1. maxTransactions:最大并发事务数。默认值为32。指的是同时进入 SqlMapClient.startTransaction()的最大线程数。大于这个值的线程将阻塞直到另一个线程退出。不同的 DBMS 有不同的限制值,但任何数据库都有这些限制。这个参数值应该总是小于或等于 maxSessions 并总是远远小于 maxRequests。减小这个参数值通常能提高性能;
            2. maxRequests:最大并发请求数(Statement并发数)。默认值为 512。指的是同时执行 SQL 语句的最大线程数。大于这个值的线程将阻塞直到另一个线程执行完成。不同的 DBMS有不同的限制值,但任何数据库都有这些限制。通常这个值应该至少是 maxTransactions 的 10 倍,并且总是大于 maxSessions 和 maxTranactions。减小这个参数值通常能提高性能;
            3. maxSessions:最大Session 数。即当前最大允许的并发SqlMapClient数。maxSessions设定必须介于maxTransactions和maxRequests之 间,即maxTransactions<maxSessions=<maxRequests。默认值为128。
            4. defaultStatementTimeout:Statement 的执行超时时间,单位为秒。如果没有指明,查询将无超时时间限制,除非在映射文件中设置Statement属性值。
    • memcache
      • PHP-Driver
        • Memcache::connect 函数传入的 timeout 参数代表连接超时时间,单位秒。默认值1秒。郑昀注:修改此值之前请三思,过长的连接超时时间可能会导致失去所有的缓存优势。 
      • Java-Driver
        • spymemcached
          • opTimeout :代表操作超时时间,默认值2.5秒;
        • xmemcahced 
          • opTimeout 的定义与 spymemcached 一样,默认值1秒;
  • WebServer
    • Nginx
      1. fastcgi_connect_timeout:同 FastCGI 服务器的连接超时时间,默认值60秒。郑昀注:它不能超过75秒新请求在等待 fastcgi_connect_timeout 秒后就收到 504 Gateway Time-out 错误;
      2. fastcgi_send_timeout: Nginx 进程向 FastCGI 进程发送 request ,整个过程的超时时间,默认值60秒;
      3. 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端设置
        1. wireFormat.maxInactivityDuration:设置心跳时间,默认值是30秒;
        2. initialReconnectDelay:第一次重连的时间间隔(毫秒),默认值为10;
        3. maxReconnectDelay:最长重连的时间间隔(毫秒),默认值为30秒;
        4. useExponentialBackOff:重连时间间隔是否以指数形式增长,默认值为true;
        5. startupMaxReconnectAttempts:初始化时的最大重连次数。一旦连接上,将使用maxReconnectAttempts的配置,默认值为0;
        6. maxReconnectAttempts:自版本5.6起:-1为默认值,代表不限重试次数;0代表从不重试(只尝试连接一次,并不重连)。5.6以前的版本:0为默认值,代表不限重试次数。所有版本:如果设置为大于0的数,代表最大重试次数;
        7. randomize:使用随机链接(郑昀:达到负载均衡的目的),默认值为true;
        8. timeout:设置发送操作的总计最大超时时间(毫秒),默认值为-1。
      • 生产者流量控制
        • 触发条件有三个:
          • 不管 mq 有无做持久化配置:
            • ActiveMQ所使用的内存到达 memoryUsage 配置值,默认值64MB;
          • 如果 mq 做了持久化配置:
            • 要打开了 useCache 开关,表明要将持久化消息缓存起来以便快速访问,默认是True;
            • 缓存在内存中消息总字节数到达 memoryLimit 配置值,默认值是1MB;

 
-待续-
 
 
赠图2枚:
http://ww3.sinaimg.cn/mw1024/6a4475c9jw1e5mc7lc6z7j20bv0hs75f.jpg
 
 
http://ww4.sinaimg.cn/bmiddle/75d41147jw1e5fv93mkhhj20c60mumy2.jpg

© 著作权归作者所有

旁观者-郑昀
粉丝 100
博文 77
码字总数 162700
作品 0
朝阳
私信 提问
nginx+uwsgi搭建web服务的性能调优和问题处理

将nginx +uwsgi+flask架构来搭建web服务。但是发现一个问题,如果http请求达到一定量后,nginx直接返回502。 大概知道问题应该在nginx和uwsgi上,限制了并发的处理数。 查了nginx uwsgi官方的...

aibati2008
2016/08/01
1K
1
Spring Cloud Zuul重试机制探秘

简介 本文章对应spring cloud的版本为(Dalston.SR4),具体内容如下: 开启Zuul功能 通过源码了解Zuul的一次转发 怎么开启zuul的重试机制 Edgware.RC1版本的优化 开启Zuul的功能 首先如何使用...

李刚
2017/11/17
0
0
Nginx配置性能优化的方法

大多数的Nginx安装指南告诉你如下基础知识——通过apt-get安装,修改这里或那里的几行配置,好了,你已经有了一个Web服务器了。而且,在大多数情况下,一个常规安装的Nginx对你的网站来说已经...

闽味川菜
2015/09/21
109
0
关于Nginx的一些优化(突破十万并发)

nginx指令中的优化(配置文件) worker_processes 8; nginx进程数,建议按照cpu数目来指定,一般为它的倍数。 workercpuaffinity 00000001 00000010 00000100 00001000 00010000 00100000 01...

神勇小白鼠
2012/02/08
238
0
PESCMS Ticket 客服工单系统 v1.2.11 发布

我们很高兴地宣布PESCMS Ticket v1.2.11 的到来。此版本带来了客户登录选择:邮箱、帐号和手机号 新功能 客户登录方式切换 由于工单系统需要兼顾客户通知需求,默认的帐号登录方式依赖邮箱地...

金拱门
05/17
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

Kafka实战(五) - 核心API及适用场景全面解析

1 四个核心API ● Producer API 允许一个应用程序发布一串流式的数据到一个或者多个Kafka topic。 ● Consumer API 允许一个应用程序订阅一个或多个topic ,并且对发布给他们的流式数据进行处...

JavaEdge
今天
11
0
实现线程的第三种方式——Callable & Future

Callable Runnable 封装一个异步运行的任务, 可以把它想象成为一个没有参数和返回值的异步方 法。Callable 与 Runnable 类似, 但是有返回值。Callable 接口是一个参数化的类型, 只有一 个...

ytuan996
今天
12
0
OSChina 周六乱弹 —— 不要摁F了!

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @巴拉迪维 : 朴树写的词曲都给人一种莫名的失落感,不过这首歌他自己却没有唱,换成赵传这种高音阶嘶喊的确很好,低沉但却有力,老男人的呐喊...

小小编辑
今天
22
0
Android Binder机制 - interface_cast和asBinder讲解

研究Android底层代码时,尤其是Binder跨进程通信时,经常会发现interface_cast和asBinder,很容易被这两个函数绕晕,下面来讲解一下: interface_cast 下面根据下述ICameraClient例子进行分析...

天王盖地虎626
昨天
13
0
计算机实现原理专题--存储器的实现(二)

计算机实现原理专题--存储器的实现(一)中描述了一种可以记住输入端变化的装置。现需要对其功能进行扩充,我们将上面的开关定义为置位,下面的开关定义为复位,然后需要增加一个保持位,当保...

FAT_mt
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部