郑昀 汇总 20130309
- 线程向某个远端资源发起的请求被阻塞,可能是以下原因:
- 连接受阻,如等待client端连接池的空闲连接,如远端服务连接数满;
- 响应迟迟没有返回,如数据库中的记录被“表锁”或“行锁”,如数据库有大量慢查询;
- memcache
- PHP下,Memcache::connect 函数传入的 timeout 参数代表连接超时时间,单位秒。默认值1秒;
- 注:修改此值之前请三思,过长的连接超时时间可能会导致失去所有的缓存优势。
- Java下,
- spymemcached 里,配置 opTimeout 代表操作超时时间,默认值2.5秒;
- xmemcahced 里,opTimeout 的定义与spy 一样,默认值1秒;
- PHP下,Memcache::connect 函数传入的 timeout 参数代表连接超时时间,单位秒。默认值1秒;
- mysql
- wait_timeout:服务器关闭非交互连接之前等待活动的秒数,默认值28800秒(即8小时);
- connect_timeout:在获取链接时,等待握手的超时时间,只在登录时有效,默认值10秒;
- innodb_lock_wait_timeout:一个 InnoDB 事务遇到一个行锁,等待的超时时间,默认值50秒,届时会打印“Lock wait timeout exceeded; try restarting transaction”错误;
- mongodb
- Java下,
- MongoOptions.maxWaitTime:连接上阻塞线程的最大等待时间,默认值120秒。
- MongoOptions.connectTimeout:建立新连接超时时间, (注意Only used for new connections) 默认无限制。
- MongoOptions.socketTimeout:socket通讯超时时间,默认无限制。
- Java下,
4344



被折叠的 条评论
为什么被折叠?



