活著,就一直在忙碌,從未有停歇。

2022-02-13 08:21:10 字數 1794 閱讀 4474

最近,忙裡偷閒,整理自己的技術知識體系,隨便寫寫,權當mark。

發現問題,解決問題。

問題描述:job跑起價時,cpu load很高。

dump分析:檢視執行緒呼叫棧資訊,有42個執行緒在如下狀態

而**中採用乙個例項,且設定的緩衝區大小為2,重寫的sendbuffer方法中和mongodb互動。

所以,這裡是由於頻繁的和mongodb互動引起的高cpu load。

優化方案:

1.改變緩衝區大小,設定乙個較大的值。但如果日誌不夠多,可能很久寫不出來。

2.自定義乙個日誌池,根據時間和個數的雙重維度控制,非同步批量的和mongodb互動。

問題描述:cpu load很高。

dump分析:

先檢視執行緒數,再列印出每個託管執行緒的呼叫棧資訊,沒有發現明顯問題。

繼續,檢視執行緒的耗時,發現有兩個執行緒耗時為30秒,從呼叫棧資訊檢視,是同乙個介面。

對該介面做壓力測試,5個併發時cpu在90%以上,所以是由於介面耗時較多,導致併發時高cpu load。

效能分析:

用vs analyze tool對介面做效能分析,發現重複呼叫了從redis中取某個特定快取資料的方法

跟蹤**,發現對於相同的快取資料,用兩種方式重複取: 

1.迴圈,取單個快取。 

2.一次取所有快取。

所以這裡取重複了,多了一倍的耗時,通過除錯可以驗證這個結論。所以,首先要剔除重複。

之後,檢視為何從redis取快取如此慢,原因是以json字串格式訪問redis的,所以取時需要反序列化,可以針對這點再考慮優化訪問方案。

quartz.net、activemq、unity、autofac、git等。

其中,程序間通訊,除了webapi,還包括:

hadoop沒實踐過,只是之前看看書而已,都快忘了。。。

h5和asp.net mvc都不是特別熟,使用者表現層就不說哈~~

sql server、mysql、mongodb等。

通過ado.net或ef等orm工具,實現和資料庫的互動操作。

使用memcached、redis或自建快取系統。

細節,有時間再慢慢道來吧。。

30期 一直在忙碌 一直都不孤單

一下子發現自己來京學習已經兩個月了,想想也是,就是這麼不經意。當初,雲裡霧裡似的獨自來到北京,來到曾經陌生的 lamp,兄弟連 但這是個正確的衝動。到了兄弟連,一切從新開始。發現這裡沒有了以前學校裡的樂趣,不准玩手機,不准看電影,不准玩遊戲,不准睡覺,沒有人談論課後去 玩,沒有人談論流行,沒有人談論...

人生著就一直在面試

1 你為什麼要辭職?可以嘗試問問自己以下問題 1 這次我為什麼要跳槽 2 這次我要選擇什麼樣的工作 3 下次我會在什麼時候跳槽 4 下次我會選擇什麼樣的工作 5 我什麼時候才會不跳槽 1 最重要的是 應聘者要使找招聘單位相信,應聘者在過往的單位的 離職原因 在此家招聘單位裡不存在。2 避免把 離職原...

一直在流浪

人生是一場旅途,我們一直在流浪。沿途的美景轉瞬即逝,唯有往事如影隨行。總在平衡,追蹤夢裡的畫面,現實還是幻覺,誰又能察覺?迷一樣的歲月,在旅途中丟失方向。茫然若失的不知所措,驚慌失措的無計可施。揮一揮拳頭,砸向深邃的夜空,迷茫的心境。總是努力不敢如此窘迫,而事實卻總是出乎意料的背道而馳,難道命硬的人...