服務測試碰釘子Server GC

2022-01-13 12:22:11 字數 1156 閱讀 8597

最近一直做在做fasthttpapi方面的效能測試,在本機測試效能一直都比較良好;問題部署上伺服器後效率竟然跑不過asp.net core webapi,這結果和在本地測完全是兩碼事;主要原因是12核的cpu無法跑到超過8核的資源,而asp.net core基本能跑滿!為了找到原因還把'kestrel.transport.sockets'**看了一遍,怎看也不看不出有本質上的效能優勢,不過實測結果告訴我的確是這樣了;於是又仔細翻閱了**和配置檔案也沒看到有什麼特別的配置和執行緒配置資訊,後來實在沒辦法了又看了一遍發布後的配置資訊,結果看了乙個system.gc.server的配置資訊。

網上對system.gc.server有實質性介紹的文件並不太多,msdn翻譯如下: 公共語言執行時 (clr) 支援兩種型別的垃圾**:工作站垃圾**(適用於所有系統)和伺服器垃圾**(適用於多處理器系統)。 使用 元素以控制 clr 執行的垃圾**型別。 使用 gcsettings.isservergc 屬性以確定是否啟用伺服器垃圾**。 對於單處理器計算機,預設的工作站垃圾**應該是最快捷的選項。 對於雙處理器計算機,最快捷的選項既可以是工作站垃圾**又可以是伺服器垃圾**。 對於兩個以上處理器的計算機,伺服器垃圾**應該是最快捷的選項。

從msdn上並沒有太多講述server gc把發揮的作用,最明確一點就是可以使用多處理器對gc進行快捷處理,至於這種配置在服務程式中具體能發揮多少作用呢沒有乙個具體的指標性東西。然而以於asp.net mvc這些專案預設都會編譯成servergc模式並不需要配置,而我們自己寫的console程式則不是,需要根據情況自行配置。

於是把這配置資訊複製到測試程式上,結果一跑整體的效果才出來,這個時候服務基本可以跑滿所有核資源;rps從原來的最大14萬提高到24萬,在壓測1000萬請求的過程保持穩定。由於對gc了解不是很深入,初步猜想由於預設是單執行緒處理gc,這樣會導致所有執行緒都會卡在gc處理上;即使你加大執行緒池數量或加大併發也不會從根據上解決問題,只會讓併發處理延時加大! 當在多核開啟gc server的情況上gc就不會卡在乙個執行緒上由多核的執行緒來完成,由於gc處理不會卡在乙個執行緒,所以資源能夠完全發揮出來提高併發處理能力。

trueservergarbagecollection>

propertygroup>

DHCP 服務測試

dhcp三個埠 服務端 udp 67 客戶端 udp 68 dhcpv6 客戶端 udp 546,這是需要特別開啟的 dhcp failover 服務,用來做雙機熱備的。實驗一 dhcp伺服器基本配置 在rhel1伺服器上 yum install dhcp vim usr share doc dhc...

服務端測試

首先服務端的測試包含哪些東西呢?實際上,服務端的測試簡單來說就是除了前端以外的的測試,總的來說可以分為以下兩類 1.web或者的提供業務邏輯的服務端介面測試 介面測試佔據工作工作中的80 介面測試的重點是要檢查資料的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關係等。下面粗略的列舉出測試的幾個...

醫療行業實施部署 之 遇到問題總結及避免碰釘

1 資源分配 按要求分配資源,資訊科可能不好溝通,伺服器配置分配不到位 2 系統搭建 不要隨意使用新版本系統映象,會導致缺包 元件,遇到新問題無解決方案 3 網路及安全 伺服器內網通暢 防火牆常開 1 校驗指令碼 初級校驗,針對空值,值取值範圍校驗 2 資料邏輯 針對資料的邏輯性校驗,確保採集的資料...