你應該知道的那些超時設置或默認參數
存儲介質
Redis
Java-Driver
Jedis
鏈接池:Jedis的鏈接池設計基於 Apache Commons-Pool 原生庫:
maxActive:可用鏈接實例的最大數目,默認值爲8;
maxIdle:空閒鏈接實例的最大數目,默認值也是8;
minIdle:空閒鏈接實例的最小數目,默認值爲0;
maxWait:等待可用鏈接的最大數目,單位毫秒,默認值爲-1,表示永不超時。
mongodb
Server端的鏈接數
maxConns:mongodb 實例的最大鏈接數限制能夠經過啓動參數中的 maxConns 設置。默認值取決於系統的限制(如 ulimit 和 file descriptor)。若是沒設置這個參數, mongodb 本身不會限制鏈接數。但,你不能設置超過 20,000 。
client端的鏈接
Java-Driver
MongoOptions.maxWaitTime:鏈接上阻塞線程的最大等待時間,默認值120秒;
MongoOptions.connectTimeout:創建新鏈接超時時間(鄭昀 注: Only used for new connections), 默認無限制;
MongoOptions.socketTimeout:socket通信超時時間,默認無限制;
MongoOptions.connectionsPerHost:每一個Application與 MongoDB 實例能創建的最大物理鏈接數,默認是10;
MongoOptions.threadsAllowedToBlockForConnectionMultiplier:能夠等待池中有鏈接可用的最大線程數,默認是5。
mysql
Server端的超時設置
innodb_lock_wait_timeout:一個 InnoDB 事務遇到一個行鎖,等待的超時時間,默認值50秒,屆時會打印「Lock wait timeout exceeded; try restarting transaction」錯誤;
wait_timeout:服務器關閉非交互鏈接以前等待活動的秒數,默認值28800秒(即8小時);
connect_timeout:在獲取連接時,等待握手的超時時間,只在登陸時有效,默認值10秒。
JDBC
ibatis
SqlMapConfig.xml 配置文件
maxTransactions:最大併發事務數。默認值爲32。指的是同時進入 SqlMapClient.startTransaction()的最大線程數。大於這個值的線程將阻塞直到另外一個線程退出。不一樣的 DBMS 有不一樣的限制值,但任何數據庫都有這些限制。這個參數值應該老是小於或等於 maxSessions 並老是遠遠小於 maxRequests。減少這個參數值一般能提升性能;
maxRequests:最大併發請求數(Statement併發數)。默認值爲512。指的是同時執行 SQL 語句的最大線程數。大於這個值的線程將阻塞直到另外一個線程執行完成。不一樣的 DBMS有不一樣的限制值,但任何數據庫都有這些限制。一般這個值應該至少是 maxTransactions 的 10 倍,而且老是大於 maxSessions 和 maxTranactions。減少這個參數值一般能提升性能;
maxSessions:最大Session 數。即當前最大容許的併發SqlMapClient數。maxSessions設定必須介於maxTransactions和maxRequests之間,即maxTransactions<maxSessions=<maxRequests。默認值爲128。
defaultStatementTimeout:Statement 的執行超時時間,單位爲秒。若是沒有指明,查詢將無超時時間限制,除非在映射文件中設置Statement屬性值。
memcache
PHP-Driver
Memcache::connect 函數傳入的 timeout 參數表明鏈接超時時間,單位秒。默認值1秒。鄭昀 注:修改此值以前請三思,過長的鏈接超時時間可能會致使失去全部的緩存優點。
Java-Driver
spymemcached
opTimeout :表明操做超時時間,默認值2.5秒;
xmemcahced
opTimeout 的定義與 spymemcached 同樣,默認值1秒;
WebServer
Nginx
fastcgi_connect_timeout:同 FastCGI 服務器的鏈接超時時間,默認值60秒。鄭昀 注:它不能超過75秒 。新請求在等待 fastcgi_connect_timeout 秒後就收到 504 Gateway Time-out 錯誤;
fastcgi_send_timeout: Nginx 進程向 FastCGI 進程發送 request ,整個過程的超時時間,默認值60秒;
fastcgi_read_timeout: FastCGI 進程向 Nginx 進程發送 response ,整個過程的超時時間,默認值60秒。
PHP
PHP-FPM 模式
max_execution_time 參數不太起效,它控制的是進程的CPU佔用時間,默認值30秒;
真正起做用的是 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端設置
wireFormat.maxInactivityDuration:設置心跳時間,默認值是30秒;
initialReconnectDelay:第一次重連的時間間隔(毫秒),默認值爲10;
maxReconnectDelay:最長重連的時間間隔(毫秒),默認值爲30秒;
useExponentialBackOff:重連時間間隔是否以指數形式增加,默認值爲true;
startupMaxReconnectAttempts:初始化時的最大重連次數。一旦鏈接上,將使用maxReconnectAttempts的配置,默認值爲0;
maxReconnectAttempts:自版本5.6起:-1爲默認值,表明不限重試次數;0表明從不重試(只嘗試鏈接一次,並不重連)。5.6之前的版本:0爲默認值,表明不限重試次數。全部版本:若是設置爲大於0的數,表明最大重試次數;
randomize:使用隨機連接(鄭昀 注:達到負載均衡的目的),默認值爲true;
timeout:設置發送操做的總計最大超時時間(毫秒),默認值爲-1。
生產者流量控制
觸發條件有三個:
無論 mq 有無作持久化配置:
ActiveMQ所使用的內存到達 memoryUsage 配置值,默認值64MB;
若是 mq 作了持久化配置:
要打開了 useCache 開關,代表要將持久化消息緩存起來以便快速訪問,默認是True;
緩存在內存中消息總字節數到達 memoryLimit 配置值,默認值是1MB;
歡迎關注本站公眾號,獲取更多信息