`
zhengyun_ustc
  • 浏览: 83069 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

阅读更多
郑昀总结
最后更新于2013年6月19日

  • 存储介质
    • Redis
      • Java-Driver
  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
    分享到:
    评论

    相关推荐

      单片机串口接收超时参数设置

      ### 单片机串口接收超时参数设置详解 #### 一、引言 在单片机通信领域,串口通信是一种非常常见的数据传输方式。为了确保数据的准确无误地传输,设置合适的串口接收超时参数至关重要。本文将详细介绍如何在单片机上...

      C#函数超时执行事例

      在C#编程中,有时我们需要确保函数在一定时间内完成其执行,否则可能因为长时间阻塞导致应用程序无响应或性能下降。本示例将探讨如何在C#中实现函数的超时处理,特别是在WPF(Windows Presentation Foundation)应用...

      详解Nginx服务器中配置超时时间的方法

      本文将深入讲解如何在Nginx中配置超时时间,并介绍相关的参数设置。 首先,我们需要了解何时需要设置超时时间。在服务器运行过程中,如果一个请求耗时过长,可能导致服务器资源被过度占用,从而影响其他用户的正常...

      Modbus RTU 通信连接超时参数.pdf

      本文主要探讨了在S7-1200 PLC中使用Modbus RTU通信时,涉及的连接超时参数及其影响。 在Modbus RTU网络中,主站负责轮询各个从站,获取或写入数据。当网络中有多个从站时,通信效率会受到多个因素的影响,包括通信...

      Modbus RTU 通信连接超时参数.docx

      总的来说,优化Modbus RTU通信连接超时参数涉及到对系统整体性能的理解和参数的精细调整。根据实际网络条件和设备性能,合理设置`RESP_TO`、`RETRIES`和`Blocked_Proc_Timeout`,可以提高通信效率,减少因从站故障或...

      delphi DataSnap连接超时设置无效补丁.zip

      为解决这个问题,开发者通常会尝试调整 DataSnap 的连接超时参数,例如在服务器端或客户端代码中设置合适的超时值。然而,如果这些常规方法无效,可能需要寻找额外的解决方案,比如使用特定的补丁。"delphi DataSnap...

      android串口调用,使用c开发的,可以设置串口超时

      `VTIME`以十分之一秒为单位设置读操作超时,而`VMIN`设置至少需要读取的字符数,当达到该数目或超时后,读操作返回。 5. **读写操作**: - 使用`read()`和`write()`函数进行串口数据的读写。设置超时后,`read()`...

      cpp-并行执行http请求支持超时设置

      通过`curl_multi_perform`可以并行执行这些请求,同时利用`curl_easy_setopt`设置超时参数,如`CURLOPT_TIMEOUT`来指定单个请求的超时时间。 压缩包中的`paw-master`可能是一个开源项目,它可能包含了实现上述功能...

      为jquery的ajax请求添加超时timeout时间的操作方法

      如果checkLoading函数在没有设置延时参数的情况下被调用,那么默认等待1秒钟。 除了设置超时时间以外,我们还可以在Ajax请求完成后通过complete回调函数来处理超时情况: ```javascript var ajaxTimeoutTest = $....

      QT串口工具,增加定时发送及超时接收功能

      为了便于用户操作,通常会在主界面上添加定时发送和超时设置的选项,例如通过滑动条或输入框来设置时间间隔,以及一个启动/停止按钮来控制定时发送。同时,接收超时的提示和处理方式也需要直观地呈现给用户,可能是...

      ksoap设置超时

      通过以上步骤,你就成功地在ksoap2中实现了自定义的超时设置。这不仅可以防止因长时间等待导致的应用卡死,还可以优化用户体验,让应用程序更加健壮。当然,超时时间应根据实际网络环境和服务器响应速度灵活调整,以...

      C#超时方法 正则超时

      首先,`OutTimeClass.cs`可能包含了一个自定义的超时类,它可能提供了设置超时时间、执行任务以及在超时时抛出异常等功能。这样的类通常会使用`System.Threading.Tasks.Task`或`System.Threading.Timer`来监控任务的...

      详解SpringBoot中Session超时原理说明

      默认情况下,SpringBoot 使用 Tomcat 作为嵌入式 Servlet 容器,而 Tomcat 中的 Session 超时时间可以通过配置文件来设置。例如,在 application.properties 或 application.yml 文件中可以添加以下配置: ``` ...

      设置超时控制.zip

      SELECT函数的超时参数是一个struct timeval结构体,包含秒和微秒两个字段,用于设置超时时间。 3. POLL函数: POLL是另一种I/O多路复用技术,与SELECT相比,它支持更多的文件描述符,并且不受FD_SETSIZE的限制。在...

      Volley修改超时时间和请求头源码

      在实际应用中,我们有时需要根据网络环境或业务需求调整Volley的默认设置,例如修改请求头(Request Headers)和超时时间(Timeouts)。本文将深入探讨如何通过源码修改这两项关键参数,以解决可能出现的多次调用...

      C++设置超时时间的简单实现方法

      在给定的代码片段中,`SetTimeOut`函数接收一个套接字描述符`s`、一个整型超时时间`nTime`和一个布尔值`bRecv`,根据`bRecv`的值来决定是设置接收超时(`SO_RCVTIMEO`)还是发送超时(`SO_SNDTIMEO`)。函数的实现如下:...

      Halcon连接Gige相机取图超时

      - **子网掩码和网关**:检查并确认相机和计算机的子网掩码及默认网关设置正确无误。 - **端口占用**:GigE相机使用特定端口(如5000-5999)进行通信,确保这些端口未被其他程序占用。 3. **硬件触发**: - **...

      tcp协议如何处理链接超时

      然后创建一个TCP套接字`cClient`,并设置它的属性,例如设置发送和接收超时,这里使用`setsockopt`函数,参数`SO_SNDTIMEO`和`SO_RCVTIMEO`分别对应发送和接收超时。 接着,将套接字设置为非阻塞模式,这可以通过`...

      Linux下Socket连接超时的一种实现方法

      Linux 下 Socket 连接超时的一种实现方法 ...但是多少有些复杂,如果有象 SO_SNDTIMO/SO_RCVTIMO 一样的套接字参数可以让超时操作跳过 select 的话,世界将变得更美好。当然你还可以选用象 apr 一样提供了简单接口。

    Global site tag (gtag.js) - Google Analytics