Java两则故障分析和常见连接超时时间
郑昀 汇总 20130309 常见现象的故障分析: 现象倒推一:Java Web应用的连接数暴增 最大的可能是,Web应用的线程调用路径中阻塞在某个远端资源上。 线程向某个远端资源发起的请求被阻塞,可能是以下原因: 连接受阻,如等待client端连接池的空闲连接,如远端服务连接数满; 响应迟迟没有返回,如数据库中的记录被“表锁”或“行锁”,如数据库有大量慢查询; 常见的连接超时时间 为了让 大家 一看到线上日志某些刚刚好的时间就能反应过来,总结如下: memcache PHP下, Memcache::connect 函数传入的 timeout 参数代表连接超时时间,单位秒。 默认值1秒 ; 注:修改此值之前请三思,过长的连接超时时间可能会导致失去所有的缓存优势。 Java下, spymemcached 里,配置 opTimeout 代表操作超时时间, 默认值2.5秒 ; xmemcahced 里,opTimeout 的定义与spy 一样, 默认值1秒 ; mysql wait_timeout:服务器关闭非交互连接之前等待活动的秒数, 默认值28800秒 (即8小时); connect_timeout:在获取链接时,等待握手的超时时间,只在登录时有效, 默认值10秒 ; innodb_lock_wait_timeout:一个 InnoDB 事务遇到一个行锁,等待的超时时间,