最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot內(nèi)置tomcat參數(shù)調(diào)優(yōu)的實現(xiàn)

 更新時間:2023年09月12日 08:54:43   作者:風(fēng)情客家__  
springboot內(nèi)置了tomcat, 并給我們設(shè)置了默認(rèn)參數(shù), 我們怎么樣修改springboot內(nèi)置的tomcat參數(shù),本文就詳細(xì)的來介紹一下,感興趣的可以了解一下

1. 默認(rèn)配置

可通過org.springframework.boot.autoconfigure.web.ServerProperties查看,其中包括屬性tomcat、jetty、undertow三種服務(wù)器的設(shè)置,默認(rèn)啟用tomcat。

# tomcat 8
server:
  tomcat:
    max-connections: 10000 #最大連接數(shù),默認(rèn)為10000
    accept-count: 100 # 最大連接等待數(shù),默認(rèn)100 
    max-threads: 200  #最大工作線程數(shù),默認(rèn)200
    min-spare-threads: 10 #最小工作線程數(shù),默認(rèn)10
# tomcat 9
server:
  tomcat:
    max-connections: 8192
    accept-count: 100
    threads:
      max: 200
      min-spare: 10

詳解:maxConnections、maxThreads、acceptCount

每一次HTTP請求到達(dá)Web服務(wù)器,Web服務(wù)器都會創(chuàng)建一個線程來處理該請求

min-spare-threads:
最小備用線程數(shù),tomcat啟動時的初始化的線程數(shù),默認(rèn)10。(適當(dāng)增大一些,以便應(yīng)對突然增長的訪問量)

max-threads:
Tomcat可創(chuàng)建的最大工作線程數(shù),默認(rèn)200, 每一個線程處理一個請求,超過這個請求數(shù)后,客戶端請求只能排隊,等有線程釋放才能處理。(4核8g內(nèi)存,線程數(shù)800,一般是 核數(shù)*200 。操作系統(tǒng)做線程之間的切換調(diào)度是有系統(tǒng)開銷的,所以不是越多越好。)

accept-count:
當(dāng)調(diào)用Web服務(wù)的HTTP請求數(shù)達(dá)到tomcat的最大線程數(shù)時,還有新的HTTP請求到來,這時tomcat會將該請求放在等待隊列中,這個acceptCount就是指能夠接受的最大等待數(shù),默認(rèn)100。
如果等待隊列也被放滿了,這個時候再來新的請求就會被tomcat拒絕(connection refused),隊列也做緩沖池用,但也不能無限長,不但消耗內(nèi)存,而且出隊入隊也消耗CPU。

max-connections:
這個參數(shù)是指在同一時間,tomcat能夠接受的最大連接數(shù)。一般這個值要大于(max-threads)+(accept-count)。

tomcat的最大線程數(shù),最大排隊數(shù)多少合適

1、Tomcat默認(rèn)的HTTP實現(xiàn)是采用阻塞式的Socket通信,每個請求都需要創(chuàng)建一個線程處理,當(dāng)一個進(jìn)程有500個線程在跑的話,那性能已經(jīng)是很低很低了。Tomcat 默認(rèn)配置的最大請求數(shù)是150,也就是說同時支持150個并發(fā)。
2、SpringBoot內(nèi)置Tomcat,在默認(rèn)設(shè)置中,Tomcat的最大線程數(shù)是 200,最大連接數(shù)是 10000。支持的并發(fā)量是指連接數(shù)。Tomcat有兩種處理連接的模式,一種是 BIO,一個線程只處理一個連接,另一種就是 NIO,一個線程處理多個連接。
3、啟動tomcat。進(jìn)入apache-tomcat-0.0.M3下的bin目錄,雙擊startup.bat 在瀏覽器中的輸入10.1:8080,回車。查看tomcat是否啟動成功??吹绞煜さ男∝垼瑔映晒α?!查看tomcat服務(wù)器的最大連接數(shù)。
4、在tomcat配置文件server.xml中的Connector /配置中,和連接數(shù)相關(guān)的參數(shù)有:maxThreads=150 表示最多同時處理150個連接,Tomcat使用線程來處理接收的每個請求。這個值表示Tomcat可創(chuàng)建的最大的線程數(shù)。默認(rèn)值200。
5、maxSpareThreads:最大空閑線程數(shù),如果超過這個值,會關(guān)閉無用的線程。acceptCount:當(dāng)處理請求超過此值時,將后來請求放到隊列中等待。
6、 最大線程數(shù)設(shè)置多少合適和tomcat的運(yùn)行環(huán)境有關(guān)的,比如硬件,內(nèi)存等等,適當(dāng)可以給tomcat的運(yùn)行最大分配的內(nèi)存加大點。另外,用一些工具: 比較ab, loadrunner做做壓力測試。

2. Tomcat經(jīng)驗值

max-threads線程數(shù)的經(jīng)驗值為:

1核2g內(nèi)存,線程數(shù)經(jīng)驗值200;
4核8g內(nèi)存,線程數(shù)經(jīng)驗值800。

4核8g內(nèi)存,建議值:

server:
  tomcat:
    max-connections: 10000 
    accept-count: 1000
    max-threads: 800 
    min-spare-threads: 100

3. 其它參數(shù)詳解

  • server.tomcat.max-connections: 8192
服務(wù)器在任何給定時間接受和處理的最大連接數(shù)。 一旦達(dá)到限制,操作系統(tǒng)仍然可以根據(jù)“acceptCount”屬性接受連接。
  • server.tomcat.accept-count: 100
當(dāng)所有可能的請求處理線程都在使用時,傳入連接請求會被放進(jìn)隊列中等待,等待隊列的最大隊列長度。
  • server.tomcat.threads.max: 200
服務(wù)器在給定時間能接受的連接數(shù)為server.tomcat.max-connections, 但并不是同時在工作,最大工作線程數(shù)。
  • server.tomcat.threads.min-spare: 10
有最大的工作線程數(shù), 就有最小工作線程數(shù)。
  • server.tomcat.uri-encoding: UTF-8
用于解碼 URI 的字符編碼。
  • server.tomcat.max-http-form-post-size: 2MB
任何 HTTP POST請求中表單內(nèi)容的最大大小。理論上POST請求的大小是無限制的,但是tomcat設(shè)定了請求大小為兩兆,如要取消限制,則應(yīng)該將值設(shè)為 -1。
  • server.tomcat.max-swallow-size: 2MB
請求正文的大小。
  • server.tomcat.connection-timeout: 60000ms
連接器在接受連接后將等待呈現(xiàn)請求 URI 行的時間。即socket調(diào)用read()等待讀取的時間,如果在設(shè)置的時間內(nèi)沒有請求,則會主動斷開連接
  • server.tomcat.keep-alive-timeout: (Duration)
在連接關(guān)閉之前等待另一個 HTTP 請求的時間。默認(rèn)和 connectionTimeout的值一樣。 設(shè)置為 -1 時不會超時。
  • server.tomcat.max-keep-alive-requests: 100
Maximum number of HTTP requests that can be pipelined before the connection is closed. When set to 0 or 1, keep-alive and pipelining are disabled. When set to -1, an unlimited number of pipelined or keep-alive requests are allowed.
在連接關(guān)閉之前可以通過管道傳輸?shù)淖畲?HTTP 請求數(shù)。 當(dāng)設(shè)置為 0 或 1 時,長連接和管道被禁用,可以避免tomcat產(chǎn)生大量的TIME_WAIT連接,從而從一定程度上避免tomcat假死。 當(dāng)設(shè)置為 -1 時,允許無限數(shù)量的管道或長連接請求。
即表示該連接最大支持的請求數(shù)。超過該請求數(shù)的連接也將被關(guān)閉(此時就會返回一個Connection: close頭給客戶端)

其他一些不常用的設(shè)置

# 是否緩沖輸出,使其僅定期刷新。
server.tomcat.accesslog.buffered: true
# 是否檢查日志文件是否存在,以便在外部進(jìn)程重命名它時可以重新創(chuàng)建它。
server.tomcat.accesslog.check-exists: false
# 是否僅在“ServletRequest.getAttribute(conditionIf)”不產(chǎn)生 null 時才啟用請求的日志記錄。
server.tomcat.accesslog.condition-if: String
# 是否僅在“ServletRequest.getAttribute(conditionUnless)”產(chǎn)生 null 時才啟用請求記錄。
server.tomcat.accesslog.condition-unless: String
# 創(chuàng)建日志文件的目錄。 可以是絕對的或相對于 Tomcat 基本目錄。
server.tomcat.accesslog.directory: logs
# 啟用訪問日志。
server.tomcat.accesslog.enabled: false
# 日志文件使用的字符集。 默認(rèn)為系統(tǒng)默認(rèn)字符集。
server.tomcat.accesslog.encoding: String
# 放置在日志文件名中的日期格式。
server.tomcat.accesslog.file-date-format: .yyyy-MM-dd
# 是否使用 RFC 5952 定義的 IPv6 規(guī)范表示格式。
server.tomcat.accesslog.ipv6-canonical: false
# 用于格式化日志條目和日志文件名后綴中的時間戳的語言環(huán)境。 默認(rèn)為 Java 進(jìn)程的默認(rèn)語言環(huán)境。
server.tomcat.accesslog.locale: String
# 刪除訪問日志文件之前保留的天數(shù)。
server.tomcat.accesslog.max-days: -1
# 訪問日志的格式模式。
server.tomcat.accesslog.pattern: common
# 日志文件名前綴。
server.tomcat.accesslog.prefix: access_log
# 是否推遲在文件名中包含日期戳,直到輪換時間。
server.tomcat.accesslog.rename-on-rotate: false
# 為請求使用的 IP 地址、主機(jī)名、協(xié)議和端口設(shè)置請求屬性。
server.tomcat.accesslog.request-attributes-enabled: false
# 是否啟用訪問日志輪換。
server.tomcat.accesslog.rotate: true
# 日志文件名后綴。
server.tomcat.accesslog.suffix: .log
# 逗號分隔的附加模式列表,匹配 jar 以忽略 TLD 掃描。 特殊的“?” 和 '*' 字符可以在模式中使用,以分別匹配一個和一個字符以及零個或多個字符。
server.tomcat.additional-tld-skip-patterns: List<String>
# 調(diào)用 backgroundProcess 方法之間的延遲。 如果未指定持續(xù)時間后綴,則將使用秒。
server.tomcat.background-processor-delay: 10s
# Tomcat 基目錄。 如果未指定,則使用臨時目錄。
server.tomcat.basedir: File
# 是否應(yīng)該啟用 Tomcat 的 MBean Registry。
server.tomcat.mbeanregistry.enabled: false
# 將保留在緩存中并在后續(xù)請求中重用的最大空閑處理器數(shù)。 當(dāng)設(shè)置為 -1 時,緩存將不受限制,理論上的最大大小等于最大連接數(shù)。
server.tomcat.processor-cache: 200
# 是否應(yīng)通過將 / 附加到路徑來重定向?qū)ι舷挛母恼埱蟆?使用在代理處終止的 SSL 時,此屬性應(yīng)設(shè)置為 false。
server.tomcat.redirect-context-root: true
# URI 路徑中應(yīng)允許的其他未編碼字符的逗號分隔列表。 只允許使用“< > [ \ ] ^ ` { | }”。
server.tomcat.relaxed-path-chars: List<Character>
# URI 查詢字符串中應(yīng)允許的其他未編碼字符的逗號分隔列表。 只允許使用“< > [ \ ] ^ ` { | }”。
server.tomcat.relaxed-query-chars: List<Character>
# 從中提取遠(yuǎn)程主機(jī)的 HTTP 表頭的名稱。
server.tomcat.remoteip.host-header: X-Forwarded-Host
# 匹配要信任的代理的正則表達(dá)式。
server.tomcat.remoteip.internal-proxies: 10\.\d{1,3}\.\d{1,3}\.\d{1,3}|192\.168\.\d{1,3}\.\d{1,3}|169\.254\.\d{1,3}\.\d{1,3}|127\.\d{1,3}\.\d{1,3}\.\d{1,3}|172\.1[6-9]{1}\.\d{1,3}\.\d{1,3}|172\.2[0-9]{1}\.\d{1,3}\.\d{1,3}|172\.3[0-1]{1}\.\d{1,3}\.\d{1,3}|0:0:0:0:0:0:0:1|::1
# 用于覆蓋原始端口值的 HTTP 標(biāo)頭的名稱。
server.tomcat.remoteip.port-header: X-Forwarded-Port
# 包含傳入?yún)f(xié)議的標(biāo)頭,通常命名為“X-Forwarded-Proto”。
server.tomcat.remoteip.protocol-header: X-Forwarded-Proto
# 指示傳入請求是否使用 SSL 的協(xié)議頭的值.
server.tomcat.remoteip.protocol-header-https-value: https
# 從中提取遠(yuǎn)程 IP 的 HTTP 表頭的名稱。 例如,`X-FORWARDED-FOR`。
server.tomcat.remoteip.remote-ip-header: X-FORWARDED-FOR
# 此 Web 應(yīng)用程序是否允許靜態(tài)資源緩存。
server.tomcat.resource.allow-caching: true
# 靜態(tài)資源緩存的生存時間。
server.tomcat.resource.cache-ttl: Duration
# 通過調(diào)用 sendRedirect 生成的 HTTP 1.1 和更高版本的位置標(biāo)頭將使用相對重定向還是絕對重定向。
server.tomcat.use-relative-redirects: false

到此這篇關(guān)于SpringBoot內(nèi)置tomcat參數(shù)調(diào)優(yōu)的實現(xiàn)的文章就介紹到這了,更多相關(guān)SpringBoot tomcat參數(shù)調(diào)優(yōu)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解Spring中singleton?bean如何同時服務(wù)多個請求

    詳解Spring中singleton?bean如何同時服務(wù)多個請求

    這篇文章主要介紹了詳解Spring中singleton?bean如何同時服務(wù)多個請求
    2023-02-02
  • Java中Semaphore(信號量)的使用方法

    Java中Semaphore(信號量)的使用方法

    這篇文章主要介紹了Java中Semaphore(信號量)的使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Jackson多態(tài)序列化圖文詳解

    Jackson多態(tài)序列化圖文詳解

    jackson允許配置多態(tài)類型處理,當(dāng)進(jìn)行反序列話時,JSON數(shù)據(jù)匹配的對象可能有多個子類型,為了正確的讀取對象的類型,我們需要添加一些類型信息,下面這篇文章主要給大家介紹了關(guān)于Jackson多態(tài)序列化的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • java獲取類名的方法詳解

    java獲取類名的方法詳解

    這篇文章主要介紹了java獲取類名的問題詳解,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-07-07
  • Springboot實現(xiàn)從controller中跳轉(zhuǎn)到指定前端頁面

    Springboot實現(xiàn)從controller中跳轉(zhuǎn)到指定前端頁面

    Springboot實現(xiàn)從controller中跳轉(zhuǎn)到指定前端頁面方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 如何解決遇到的錯誤信息?java:?找不到符號?符號:?變量?log

    如何解決遇到的錯誤信息?java:?找不到符號?符號:?變量?log

    使用Lombok的@Slf4j注解時出現(xiàn)log變量找不到問題,這篇文章主要介紹了如何解決遇到的錯誤信息?java:?找不到符號?符號:?變量?log的相關(guān)資料,文中將解決的辦法介紹的非常詳細(xì),需要的朋友可以參考下
    2025-05-05
  • Java 如何優(yōu)雅的拋出業(yè)務(wù)異常

    Java 如何優(yōu)雅的拋出業(yè)務(wù)異常

    這篇文章主要介紹了Java 如何優(yōu)雅的拋出業(yè)務(wù)異常,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-12-12
  • Java中final,finally,finalize?有什么區(qū)別

    Java中final,finally,finalize?有什么區(qū)別

    這篇文章主要給大家分享的是?Java中final,finally,finalize?到底有什么區(qū)別,文章圍繞final,finally,finalize的相關(guān)資料展開詳細(xì)內(nèi)容,具有一定的參考的價值,需要的朋友可以參考一下
    2021-11-11
  • Java Calendar類的使用總結(jié)實例

    Java Calendar類的使用總結(jié)實例

    這篇文章主要介紹了Java Calendar類的使用總結(jié)實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Spring之ShutDown?Hook死鎖現(xiàn)象解讀

    Spring之ShutDown?Hook死鎖現(xiàn)象解讀

    這篇文章主要介紹了Spring之ShutDown?Hook死鎖現(xiàn)象解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04

最新評論

旅游| 四会市| 高陵县| 潼南县| 扶余县| 南和县| 九台市| 囊谦县| 巴塘县| 务川| 驻马店市| 桓台县| 巴彦淖尔市| 伊吾县| 犍为县| 武山县| 吴桥县| 平泉县| 西乌珠穆沁旗| 石河子市| 宝山区| 台州市| 郧西县| 精河县| 喀喇沁旗| 奇台县| 永昌县| 黄陵县| 临桂县| 咸丰县| 融水| 南溪县| 天台县| 民丰县| 措勤县| 揭阳市| 襄汾县| 湘乡市| 长阳| 贵定县| 砀山县|