內嵌Tomcat的Connector對象的靜態代碼塊

  在排查問題的過程中發現Connector對象有一個靜態代碼塊:

    static {replacements.put("acceptCount", "backlog");replacements.put("connectionLinger", "soLinger");replacements.put("connectionTimeout", "soTimeout");replacements.put("rootFile", "rootfile");}

  其中backlog在linux里可以通過man listen > listen.txt導出看到:

The backlog argument defines the maximum length to which the  queue  ofpending  connections  for  sockfd  may  grow.   If a connection requestarrives when the queue is full, the client may receive an error with anindication  of  ECONNREFUSED  or,  if  the underlying protocol supportsretransmission, the request may be ignored so that a later reattempt atconnection succeeds

  TCP連接過程中有三個結構分別用于保存:每一個客戶端的連接,握手成功的連接,正在握手中但尚未成功的連接。內核為任何一個給定的監聽套接口維護兩個隊列:1、未完成連接隊列(incomplete connection queue),每個這樣的SYN分節對應其中一項:已由某個客戶發出并到達服務器,而服務器正在等待完成相應的TCP三路握手過程。這些套接口處于SYN_RCVD狀態;2、已完成連接隊列(completed connection queue),每個已完成TCP三路握手過程的客戶對應其中一項。這些套接口處于ESTABLISHED狀態。

 Now it specifies the  queue  length  for  completely  establishedsockets  waiting  to  be  accepted, instead of the number of incompleteconnection requests.  The maximum length of the  queue  for  incompletesockets  can be set using /proc/sys/net/ipv4/tcp_max_syn_backlog.  Whensyncookies are enabled there is no logical maximum length and this set‐ting is ignored.  See tcp(7) for more information.If    the   backlog   argument   is   greater   than   the   value   in/proc/sys/net/core/somaxconn, then it is  silently  truncated  to  thatvalue;  the  default  value  in  this  file  is 128.  In kernels before2.4.25, this limit was a hard coded value, SOMAXCONN,  with  the  value128.

  backlog是調用listen方法時傳入的參數,指定可以握手成功的最大連接數量,但是對于linux如果這個值大于/proc/sys/net/core/somaxconn設置的值,將會取somaxconn的值替代它。所以要注意,somaxconn值如果設置的不夠大,Tomcat配置中的連接數值是不會起作用的,可以通過sysctl -w net.core.somaxconn=***來修改這個值;對應的/proc/sys/net/ipv4/tcp_max_syn_backlog設置的是最大未完成連接隊列的值,但是這個值會在/proc/sys/net/ipv4/tcp_syncookies是1的時候失效。具體實現過程可參考:http://blog.csdn.net/raintungli/article/details/37913765

  soLinger用于指定socket在關閉TCP連接時如何操作。內核缺省close操作是立即返回,如果有數據殘留在套接口緩沖區中則系統將試著將這些數據發送給對方。自定義了這項設置可以選擇是緩沖區數據全部丟棄立即關閉、發送完或超時再關閉或延遲指定時間后關閉。參考:http://blog.csdn.net/factor2000/article/details/3929816

  soTimeout用于指定數據超時時間,單位是毫秒,就是說在連續的數據傳輸過程中,兩個包之間可接受的最大間隔的時間,如果設置為0則認為不限制間隔時間。

  rootfile由于和我的問題關系不大,所以暫時沒有細看,會在整理容器的時候看看。應該是指根文件系統,參考:http://www.eeskill.com/article/index/id/1358.html

==========================================================

咱最近用的github:https://github.com/saaavsaaa

微信公眾號:

                      

?

?

轉載于:https://www.cnblogs.com/saaav/p/6341100.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/253497.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/253497.shtml
英文地址,請注明出處:http://en.pswp.cn/news/253497.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

????YAFFS2文件系統在嵌入式LINUX系統中的應用

YAFFS2文件系統在嵌入式LINUX系統中的應用 2011-03-31 19:59 181人閱讀 評論(0) 收藏 舉報 1.文件系統簡述 隨著32位CPU價格不斷下跌,片上存儲設備的容量相比越來越大,越來越多的嵌入式系統開始應用各種嵌入式操作系統。一般在嵌入式領域&am…

【Python爬蟲學習筆記1】網絡協議及請求基礎

http協議與https協議 HTTP協議(全稱為HyperText Transfer Protocol,超文本傳輸協議),是發布和接收HTML頁面的方法,其服務端口號為80。 HTTPS協議為HTTP協議的加密版本,其在HTTP下加入了SSL層,服務端口號為443。 URL結構…

快速上手SpyGlass——基本流程

SpyGlass,這是一個很強大的RTL驗證級工具。它不僅僅能檢查sdc的錯誤,還能做以下各種檢查:Low Power, DFT,CDC(Cross Domain Check)。 一、基本概念 1、方法學相關 Rule: 是SpyGlass 進行RTL分析的最小單…

NAND FLASH ECC

NAND需要ECC以確保數據完整性。NAND閃存的每一個頁面上都包括額外的存儲空間,它就是64個字節的空閑區(每512字節的扇區有16字節)。該區能存儲ECC代碼及其它像磨損評級或邏輯到物理塊映射之類的信息。ECC能在硬件或軟件中執行,但是,硬件執行有…

快速上手SpyGlass——CDC檢查

隨著技術的發展,數字電路的集成度越來越高,設計也越來越復雜。很少有系統會只工作在同一個時鐘頻率。一個系統中往往會存在多個時鐘,這些時鐘之間有可能是同步的,也有可能是異步的。如果一個系統中,異步時鐘之間存在信…

laravel session redis 設置

Laravel 在使用 Redis 作為 Session 驅動之前, 需要通過 Composer 安裝 predis/predis 擴展包 (~1.0)。 當然也可以用原生自帶的,具體使用見 https://laravel-china.org/docs/laravel/5.6/redis/1402#phpredis 操作即可。 然后在database 配置文件中配置…

數字后端——低功耗單元庫

在之前的文章中,介紹了低功耗設計物理實施的方案: 數字后端——低功耗設計物理實施_滄海一升的博客-CSDN博客_低功耗設計低功耗設計方案所涉及到的物理實施相關內容https://blog.csdn.net/qq_21842097/article/details/119918312 為了實現例如門…

【CUDA開發】CUDA面內存拷貝用法總結

【CUDA開發】CUDA面內存拷貝用法總結 標簽(空格分隔): 【CUDA開發】 主要是在調試CUDA硬解碼并用D3D9或者D3D11顯示的時候遇到了一些代碼,如下所示: CUdeviceptr g_pRgba 0; CUDA_MEMCPY2D memcpy2D { 0 }; memcp…

PerfMon常用計數器

摘要: 故事來源于《sql server2012 深入解析和性能分析》 1.重要的PerfMon CPU計數器 計數器查看內容發生問題的條件Processor%Processor TimeCPU為生產環境的請求提供服務消耗的時間占總CPU時間的百分比>80%Processor%Privilege Time  CPU為內核模式請求提供服務消耗的時…

NandFlash詳述

1. 硬件特性: 【Flash的硬件實現機制】 Flash全名叫做Flash Memory,屬于非易失性存儲設備(Non-volatile Memory Device),與此相對應的是易失性存儲設備(Volatile Memory Device)。這類設備,除了Flash,還有其他比較常見…

史上最全的MySQL高性能優化實戰總結!

1.1 前言 MySQL對于很多Linux從業者而言,是一個非常棘手的問題,多數情況都是因為對數據庫出現問題的情況和處理思路不清晰。在進行MySQL的優化之前必須要了解的就是MySQL的查詢過程,很多的查詢優化工作實際上就是遵循一些原則讓MySQL的優化器…

低功耗設計——基于UPF進行設計

UPF, 統一電源格式UPF(Unified Power Format)是新思(Synopsys)公司通用的電源格式,是一組標準的類Tcl 語言的集合,用來描述芯片設計中的低功耗意圖(Low-Power Design Intent)。 使用UPF 的語言,可以描述供電…

用公眾號獲取 任意公眾號文章列表 軟件還是免費

用公眾號獲取 任意公眾號文章列表 軟件還是免費還不快點下載 下載 地址 https://pan.baidu.com/s/1jI44Wjs轉載于:https://www.cnblogs.com/wx85437898/p/7488590.html

CentOS7時間設置問題

本地安裝一個VMWare player虛擬機客戶端,并安裝了Linux CentOS7 Basic Web Server系統,時區在安裝時已經選擇了Asia/Shanghai,但是安裝完成后,時間和當前外部的時間不一致,如下圖 圖一 圖二 圖三 后經搜索發現,由于未開…

關于Nand ECC 錯誤

Nand flash ECC數據錯誤怎么辦? 我編譯過kernel 當時選了ECC校驗 啟動以后報錯 去掉了,就不報錯了 所以我會先考慮是不是這個問題 一般來說,硬件ECC校驗出錯可能性比較小吧? 我啥也不懂 -----摘自網絡經典文章:“LINU…

低功耗設計——功耗估算

根據在功耗分析的過程中是否有輸入向量的提供,功耗估算方法可以分為仿真的方法(Simulative)和非仿真的方法(Non-simulative): 仿真的方法是根據用戶所提供的大量輸入向量來對電路進行模擬,利用…

uboot 與系統內核中 MTD分區的關系

分類: Nand 驅動 2011-11-06 23:48 705人閱讀 評論(2) 收藏 舉報 uboot 與系統內核中 MTD分區的關系: 分區只是內核的概念,就是說A~B地址放內核,C~D地址放文件系統,等等。 1:在內核…

Deep Learning(深度學習)學習筆記整理系列三

Deep Learning(深度學習)學習筆記整理系列 聲明: 1)該Deep Learning的學習系列是整理自網上很大牛和機器學習專家所無私奉獻的資料的。具體引用的資料請看參考文獻。具體的版本聲明也參考原文獻。 2)本文僅供學術交流&…

輾轉相除法 求最大公約數和最小公倍數

# include<stdio.h> int main() { int a,b,c,x,y; printf("請輸入兩個正整數&#xff0c;用逗號間隔&#xff1a;"); scanf("%d,%d",&a,&b); xa; yb; if (a<b) { ca; ab;      //要保證 a>b bc; } while (b!0) { ca; ab; bc%b; …

Conformal ECO 流程介紹

之前聽說過一句話&#xff0c;沒有修過ECO的人生是不完整的。最近就給我整得再次完整了。。。。。。 最近趕項目&#xff0c;RTL freeze之后&#xff0c;后仿發現出了bug&#xff08;還好攔下來了&#xff0c;不然頭更大&#xff09;&#xff0c;于是做了一次function ECO&…