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

    • 存储介质
      • 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;
相关文章
相关标签/搜索