2019年8月9日 星期五

利用 PerfView 來診斷是否有 .NET Core ThreadPool Starvation 的問題

前言

因為遇到了 ThreadPool Starvation 的問題,到找了相關的文章 (Diagnostic .NET Core ThreadPool Starvation with PerfView),但閱讀英文速度太慢,避免之後又遇到此問題,又要重新看一次,就簡單的翻譯一下;希望也能幫助到有需要的人。

以下翻譯文章。

服務無法處理爆量的請求 (在 CPU 使用率 20% 的時候,可以正常作業,但是遇到爆量的請求卻沒有使用更多的 CPU 資源)

這些症狀顯示瓶頸不在 CPU。基本上是服務的請求在等待其他資源,因而無法處理爆量的請求。最常見的例子是,請求的資源來自其他的機器。

然而有一個潛在的例子,缺乏的資源就是 Thread 本身。Service 沒有 Thread 可以執行下一個請求,所以就卡在那邊等待有可用的 Thread。此時,花了較長的時間在做資料庫查詢,但是卻不是在 CPU 活動的時間發生的,看起來像是 I/O 操作導致查詢超出原本的時間。這種問題稱為 ThreadPool Starvation。

2016年9月27日 星期二

薩利機長:哈德遜奇蹟 SULLY 2016

中秋的補班日請了特休, 先是跟朋友去看了 NASA 太空展,結束後跟大伯臨時約了逛 Costco 逛完後,大伯說想看電影,看了看時刻表,似乎薩利機長比較能配合我們的時間。看完才知道這部片是由 IMAX 攝影機拍攝的,難怪覺得畫面特別震撼(? 應該要去看 IMAX 的才對,雖然事件的場景不多。

私 結婚できないんじゃなくて、しないんです 2016



















這齣戲是由藤木直人 (飾演十倉) 和中谷美紀 (飾演 Miyabi),主要在講 39 歲女主角 Miyabi 身為開業醫生的成功人士,卻遲遲找不到結婚的對象。在遇到高中時喜歡的男生 (櫻井) 後,發現他也是單身的狀態,於是展開了一連串的追求行動。追求的過程中,十倉先生作為他的軍師,給了雅許多的意見。我覺得十倉的意見聽起來都還滿有道理的,也許女生可以學起來 (?

2016年7月24日 星期日

動物方城市 Zootopia 2016

























之前一直聽朋友說動物方城市很好看,但是找不到人,也一直沒有時間去看,這個禮拜的飯友團又流團,剛好湳山上映了,就找了授哥一起去看。湳山戲院是失聯好久的國中同學推薦的;去年在健檢時巧遇,我們兩個也約了好多次湳山,但時間卻一直無法配合,我就先跑來看了。

飛躍奇蹟 Eddie The Eagle 2016

























忘了看哪部電影的時候,在預告片看到這部電影;身為一個 Boarder,有關滑雪的電影當然要來看看囉!

2016年7月17日 星期日

Javascript 我真搞不懂你啊

今天突然被指派了一項工作,要用 Javascript 寫一個 Sample code,其中有一項功能要用到時間函數;簡單的看了一下 W3C School ,挑了我適合的建構式來用:
new Date(year, month, day, hours, minutes, seconds, milliseconds)
習慣寫 C# 的我,很直覺地認為建構式的參數和 C# 一樣,but 人生最厲害的就是這個 but,就因為這個建構式,花了我好幾個小時的時間才找到錯誤,看來偵錯的能力還有待加強。

日期函數中的月份是從 0 到 11,就因為沒有注意到這一點,所以當我把他像 C# 一樣使用的時候,我拿到物件的日期總是多加了一個月,但是我又把此物件轉成 Timesamp (Unix epoch time),所以就一直沒有注意到產生的時間錯了,下次看 W3C School 的時候,要特別注意下方黃色的說明。

日期類別注意事項:

  • JavaScript dates are calculated in milliseconds from 01 January, 1970 00:00:00 Universal Time (UTC).
  • JavaScript counts months from 0 to 11. January is 0. December is 11.
  • When setting a date, without specifying the time zone, JavaScript will use the browser's time zone.
  • When getting a date, without specifying the time zone, the result is converted to the browser's time zone.
另外,常用到的建構式 new Date(dateString) 其 dateString 格式為: "2015-03-25T12:00:00",字串中 T 代表的是 UTC 時間;然而此時間透過 toString() 方法得到的文字會依照瀏覽器的時區來表示時間,例如: new Date("2015-03-25T12:00:00").toString() 在我的瀏覽器 (GMT+8) 會得到以下字串: 
Wed Mar 25 2015 20:00:00 GMT+0800 (台北標準時間)

2016年7月10日 星期日

泰山傳奇 The Legend of Tarzan 2016






































2016.7.9 尼伯特颱風剛過,在放了一天沒什麼風雨的颱風假後,昨天在家裡耍廢了一整天,覺得整個人都要發霉了,跟大伯臨時約了看電影,相較於泰山,我還是比較想看下女的誘惑。不過既然泰山也算是有名,就來去看看吧!