2020第一季史上第二熱 全年溫度預測、海面上升趨勢一次看

環境資訊中心綜合外電;姜唯 編譯;林大利 審校

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

台北網頁設計公司這麼多該如何選擇?

※智慧手機時代的來臨,RWD網頁設計為架站首選

※評比南投搬家公司費用收費行情懶人包大公開

※回頭車貨運收費標準

網頁設計最專業,超強功能平台可客製化

※別再煩惱如何寫文案,掌握八大原則!

荷蘭首例水鼬確診武漢肺炎 動福團體呼籲終結皮草貿易

環境資訊中心綜合外電;姜唯 編譯;林大利 審校

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

台北網頁設計公司這麼多該如何選擇?

※智慧手機時代的來臨,RWD網頁設計為架站首選

※評比南投搬家公司費用收費行情懶人包大公開

※回頭車貨運收費標準

網頁設計最專業,超強功能平台可客製化

※別再煩惱如何寫文案,掌握八大原則!

非法棄置最高罰3億日元 日本太陽能板報廢處理淺談

文:宋瑞文(加州能源特約撰述)

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

※推薦評價好的iphone維修中心

網頁設計最專業,超強功能平台可客製化

※別再煩惱如何寫文案,掌握八大原則!

過年前9萬預算買輛車!該買什麼車最實用?

其搭載的1。5L地球夢發動機,最大功率131馬力,峰值扭矩155牛米,和CVT變速箱搭配動力響應性出色,加速實力“有點猛”。很好地兼顧了動力以及油耗。空間實用的國貨SUV吉利汽車-遠景SUV指導價:7。49-10。19萬9萬元的預算也可以選擇現在火熱的國產SUV車型,它們空間實用,坐姿高、視野也不錯。

本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

※別再煩惱如何寫文案,掌握八大原則!

全球仍有18億無家者、30億無水者 防疫宅在家、洗手都是奢侈

環境資訊中心綜合外電;姜唯 編譯;林大利 審校

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

※推薦評價好的iphone維修中心

網頁設計最專業,超強功能平台可客製化

※別再煩惱如何寫文案,掌握八大原則!

這些車竟然不適合女生,20萬內女生開什麼車好?

38-25。98萬適合人群:男士編者點評:GS8一經推出,便迅即月銷量破萬,算是自主品牌沖高的成功代表。其外形方正平直,有一點點像路虎發現的風格。車長4810mm,而車寬為1910mm,高度為1770mm,GS8開到街上犹如一台坦克一樣那麼霸氣外漏,相當威武。

前言

人分男女,但是其實有些車也會分比較適合男士開或者適合女士開。因為這些車的個性都太鮮明了。下面編者我就列舉幾款車型來說一下。

一汽-大眾-邁騰

指導價:18.99-31.69萬

適合人群:男士

編者點評:邁騰這款車雖然改款以後會顯得更加年輕耐看,但是骨子里的那種莊嚴威武依舊沒有改變。如果是黑色樣式,就給人妥妥的官方用車范。內飾設計來看,也是比較端莊、沉穩,缺乏一種柔和感。而且,邁騰車長達到4866mm,車寬也有1832mm,尺寸如此大的車,讓一個女司機遊走於市區中也不太方便。同時,這車的轉向手感有點重,女司機打起來可能會有點費力,這也是邁騰不適合女士開的原因。

smart-smart fortwo

指導價:12.50-23.50萬

適合人群:女士

編者點評:smart這台車以其楚楚動人的外形,短巧靈活的車身俘獲了不少女士的芳心。而且這車也很適合那些事業小成的女士,不僅遊走於市區中靈活方便,還能各種穿街過巷,停車也更容易,一些大車停不進去的停車位,smart都可以很輕鬆地開進去。不過,男士開的話,就顯得有點格格不入了。不但讓人看起來會覺得小氣,而且坐進車裡也會覺得空間很局促。

廣汽乘用車-傳祺GS8

指導價:16.38-25.98萬

適合人群:男士

編者點評:GS8一經推出,便迅即月銷量破萬,算是自主品牌沖高的成功代表。其外形方正平直,有一點點像路虎發現的風格。車長4810mm,而車寬為1910mm,高度為1770mm,GS8開到街上犹如一台坦克一樣那麼霸氣外漏,相當威武。不過偏高的車身如果女士來開的話就會有諸多不便,不僅上下車不容易,如果穿了裙子,還很容易春光乍泄,所以這台車也是男士開會更加有范。

東風日產-騏達

指導價:9.99-13.49萬

適合人群:女士

編者點評:騏達這款車外形時尚靚麗,內部設計也中規中矩,關鍵是空間夠大,特適合那些家中只有一個閨女,平時外出都指着她的那種家庭。之所以不適合男士開,是因為騏達這車除了手動與CVT的最低配外都配有天窗,而天窗對車內的頭部空間有一個明顯的侵蝕。身材高大的男士坐進去以後,把座椅稍微調高,並向前探頭時就很容易頂到頭,這點非常不友好。

長安馬自達-馬自達3 Axela昂克賽拉

指導價:11.49-15.99萬

適合人群:男士

編者點評:昂克賽拉是以精準的操控聞名,特別是那指哪打哪的轉向更讓懂車之人愛不釋手。但是轉向虛位太少對於女士來說不是什麼好事。特別是在高速時,手部動作不安穩,很容易就讓車子左搖右擺。同時,昂克賽拉靈敏的剎車與油門,也容易讓女士開起來一頓一頓的。

編者總結:

其實,大部分車型都是男女通殺的,只有少部分車型會有較為鮮明的標籤。不過,所有車型的手動版還是交由各位男性老司機來駕馭吧,畢竟手動擋可不是那麼容易開好。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

※別再煩惱如何寫文案,掌握八大原則!

聽說大家都在糾結這個問題…RX5、博越、GS4、瑞虎7怎麼選?

手剎礙眼,眼中的敗筆。空間表現榮威RX5:前排和後排的頭部空間、縱向空間和橫向空間都表現出色,後排中央地板十分平整。吉利博越:空間是博越的一大賣點,雖然2670mm的軸距不算長,但實際上車內頭部空間和後排腿部空間很大,整體空間表現很棒,跑長途視野好,不易暈車。

對於吉利博越“最美自主SUV”的稱號,有幾款新車頗有微詞,外觀驚艷的互聯網汽車榮威RX5、新增愛信6AT版本的傳祺GS4和上市沒多久的奇瑞瑞虎7,它們躍躍欲試,挑戰博越的地位,試圖搶佔吉利在該細分市場的份額。

這四款車收到的關注度比較高,不少粉絲經常會讓來解答這幾款車該選哪一款,所以特地將這四款車進行一次橫評,幫助你解決這道難題。

前臉設計

榮威RX5:新一代榮威品牌的設計理念,叫“律動設計”, 融入東方的審美,整體表現出自信式優雅的特質。前臉的展翼格柵通過舒展的線條以及豐富的細節來展現車頭的層次感和力量感,目前上汽量產車裡最好看的一款,能自豪地跟外媒說:“設計出自中國”。

吉利博越:博越給的一印象是魁梧、 結實、 飽滿,家族式的漣漪中網讓人過目不忘,炯炯有神的車燈像是銳利的豹睛。

傳祺GS4:GS4、GS8設計同樣出自傳祺高層張帆之手,虎嘯式的前臉設計看起來清秀嚴肅,一副正直不阿的樣子。魚鰓式的大燈、獠牙式LED日間行車燈都有着很高的原創度。

奇瑞瑞虎7:迴旋鏢式大燈,無論車頭還是車尾都有較高的原創度和辨識度,整車採用較多橫向線條,形成多處落差,營造出較強的層次感,認為瑞虎7相比過往奇瑞其他車型的沉悶外觀設計已經有長足進步。

車身尺寸

榮威RX5:長/寬/高分比為4545/1855/1719mm、軸距2700mm

舒展的線條體現了SUV特有的舒適感和安全感,車身比例十分協調,實在找不到槽點。車身尺寸、輪轂造型都與兄弟車型銳騰相像。車身尺寸均大於另外三款競品車型。

吉利博越:長/寬/高分比為4519/1831/1694mm、軸距2670mm

後車門突然升高的車線、隱藏式的D柱和懸浮式車頂設計,都是博越外觀的亮點。

傳祺GS4:長/寬/高分比為4510/1852/1708mm、軸距2650mm

三條錯落有致的腰線設計師稱之為“追風逐月”,再通過C柱和D柱之間的黑色玻璃形成懸浮式車頂,營造出動感的車身造型。

奇瑞瑞虎7:長/寬/高分比為4505/1837/1670mm、軸距2670mm

乍眼一看,瑞虎7的側面還真與日產逍客有幾分相像,前大燈延伸一部分至引擎蓋上,頗有特色。

車尾設計

榮威RX5:貫穿式的尾箱飾條連接兩邊尾燈,拉伸了整個視覺空間,達到和諧的平衡視覺感。內切燕尾的過渡更是出彩,不愧為心目中的“最美自主SUV”。

吉利博越:上揚的窗線辨識度很高,讓車尾看起來緊湊、有力,風格自成一派。扁長的車燈被粗壯的鍍鉻飾條連通,雙邊單出的排氣布局增添運動感。

傳祺GS4:尾部線條簡潔,尾燈造型簡單,突出傳祺的大標誌,大氣耐看。

奇瑞瑞虎7:車尾和車頭相呼應,圓潤飽滿、中間有個小斷層突出了層次感,簡潔之餘不失美感。

內飾

榮威RX5:RX5的內飾有着同級別最大的軟包面積,採用大面積皮材質和出色的裝配工藝顯得非常上檔次,能看出來榮威這次是卯足了勁打造一款超強競爭力的SUV。而作為互聯網汽車,搭配上中控精緻的巨屏,合作享用阿里巴巴的數據庫,基於大數據分析能讓系統越來越好用,實用性高有別於其他國產中控的巨屏。

吉利博越:中控屏幕下面的坡面布置了功能按鍵,順手實用,旋鈕按鍵觸感很好,能給前排乘客好感,中控頂部造型層次豐富,設計師稱採用了西湖斷橋的設計靈感,再一次將中國古典元素融入到設計裏面。

傳祺GS4:內飾設計簡單,但有特色,物理按鍵的組合排列設計有戰鬥機艙的既視感,按鍵很大,駕駛員行駛過程中操作起來方便。內飾用料上多為硬質材料,精緻度低,在檔次感上稍弱。

奇瑞瑞虎7:儀錶盤富有個性,採用逆時針轉動的轉速表。黑棕的拼色內飾,相比許多車型的單色調要有趣得多。中控台簡潔,物理按鍵少,內飾一目瞭然。手剎礙眼,眼中的敗筆。

空間表現

榮威RX5:前排和後排的頭部空間、縱向空間和橫向空間都表現出色,後排中央地板十分平整。

吉利博越:空間是博越的一大賣點,雖然2670mm的軸距不算長,但實際上車內頭部空間和後排腿部空間很大,整體空間表現很棒,跑長途視野好,不易暈車。

傳祺GS4:整體乘坐空間寬敞,後排中間地板縱向長度足夠長,放下一般成年男子的腳綽綽有餘。

奇瑞瑞虎7:頭部空間比博越稍好,腿部空間富餘,後排中央地板平坦,不影響中間乘客舒適性,實在是居家出行的好選擇。

動力總成

榮威RX5:1.5T發動機:169ps(124kW)、250N·m + 7擋DCT雙離合變速箱、實測0-100km/h加速時間:9.88秒、實際綜合油耗:8L/100km

渦輪遲滯較明顯,雙離合變速箱調校偏向舒適平順,但換來的代價是犧牲了換擋速度。主觀加速感受不錯,10秒內的百公里提速時間傲視同價位的其它自主SUV。

吉利博越:1.8T發動機:184ps(135kW)、285N·m + 澳大利亞DSI 6AT、實測0-100km/h加速時間:10.3秒、實際綜合油耗:8L/100km

發動機參數漂亮,但實際爆發力不強,推背感不明顯,勝在平順性好,換擋的衝擊小,穩定地輸出動力,所以加速成績在自主SUV中相當不錯。急加速時變速箱反應稍有猶豫。

傳祺GS4:1.5T發動機:152ps(112kW)、235 N·m + 愛信6AT,未進行6AT版本的試駕測試,但相信搭配全新的6AT變速箱會有更好的駕乘體驗,一改過去雙離合低速時頓挫的表現。

奇瑞瑞虎7:2.0NA發動機 + 模擬7擋CVT變速箱、實際綜合油耗:9.1L/100km

動力不是瑞虎7的強項,油門反應不靈敏,換為運動模式後有所改善。動力輸出線性,符合CVT一貫的行駛質感,能輕鬆應對日常城市路況,但並不適合急性子的你。

底盤和操控

榮威RX5:前麥弗遜式獨立懸架 后多連桿獨立懸架

紮實、高品質的底盤感受,車輛過彎時外側減震器支撐表現好,通過彎路時側傾控制不錯,表現與銳騰相接近。但減震系統調校上,RX5比銳騰更注重舒適性。細微的溝坎不會對艙內乘員感受造成太大影響,而面對路面坑窪或減速帶時,減震器會盡可能將突兀的上下跳動過濾得更平緩。

吉利博越:前麥弗遜式獨立懸架 后多連桿獨立懸架

懸架雖軟,但剎車時保證了不錯的支撐性,姿態不算誇張,底盤紮實、整合度高,由於車身高度較高,轉彎和掉頭是傾斜較明顯,有點在船上的感覺,適宜家用代步。轉向輕盈,油門響應靈敏,容易上手。

傳祺GS4:前麥弗遜式獨立懸架 后多連桿獨立懸架

GS4偏向運動路線,自不然操控調校方面亦會偏向運動,方向盤轉向回饋力度適中,高速行駛穩健,但方向盤有點滑,配有換擋撥片拐彎平穩。

奇瑞瑞虎7:前麥弗遜式獨立懸架 后多連桿獨立懸架

底盤調校表現出極高的水準,底盤韌性十足,高速經過大顛簸時仍能保持較好的車身姿態,整體表現甚至比博越、GS8等車還要出色。

總結:看完這次橫評,對於15萬該選哪款國產精品SUV相信大家心裏有數。榮威RX5有着頗高的顏值和實用上檔次的智聯繫統巨屏,很看好這款誠意滿滿的產品。對雙離合心存芥蒂的,可以選擇搭載6AT的吉利博越或者傳祺GS4,而偏愛動力輸出平順的自然吸氣車的朋友不妨選擇居家實用的奇瑞瑞虎7。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

※別再煩惱如何寫文案,掌握八大原則!

Google 推出「碳智慧運算平台」 讓資料中心根據天氣調配綠能使用

摘錄自2020年5月26日 科技報橘報導

Google 已在全球建立 20 個資料中心。Google 為達到讓自己的資料中心的運作朝向零碳排放的長期目標,近期展開了新的計畫,成了立一組團隊推出「碳智慧運算平台」,並與丹麥綠能科技公司 Tomorrow 合作,透過天氣預測即時調配何時適合使用再生能源,讓資料中心能充分利用、處理能再生能源的電力來運作資料運行。

Google 表示,這個平台不需要增外的硬體運作,也不會影響 Google 本身既有的服務,會受調整的資料運行工作是如 Google Photo 濾鏡的新功能的製作,或是增加 Google 翻譯的新單字等等,透過減少碳足跡,來讓 24 小時無碳能源供應的願景更近一步。

Google 透過調節資料運作時間來減少碳排放的計畫聽起來新穎且聰慧,不過 Google 尚未提供相關研究成果的詳細數據,根據 Techchruch 的報導,該計劃的技術代表 Ana Radovanovic 表示,初步的結果證明這樣的方式是有效的,不過資料運算轉移方法與觀測成效等相關研究結果,要等到預計今年稍後才會進行發表。

能源議題
能源節約
能源轉型
國際新聞
美國
綠能
智慧型節能
零碳排放

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

※別再煩惱如何寫文案,掌握八大原則!

解Bug之路-記一次JVM堆外內存泄露Bug的查找

解Bug之路-記一次JVM堆外內存泄露Bug的查找

前言

JVM的堆外內存泄露的定位一直是個比較棘手的問題。此次的Bug查找從堆內內存的泄露反推出堆外內存,同時對物理內存的使用做了定量的分析,從而實錘了Bug的源頭。筆者將此Bug分析的過程寫成博客,以饗讀者。
由於物理內存定量分析部分用到了linux kernel虛擬內存管理的知識,讀者如果有興趣了解請看ulk3(《深入理解linux內核第三版》)

內存泄露Bug現場

一個線上穩定運行了三年的系統,從物理機遷移到docker環境后,運行了一段時間,突然被監控系統發出了某些實例不可用的報警。所幸有負載均衡,可以自動下掉節點,如下圖所示:

登錄到對應機器上后,發現由於內存佔用太大,觸發OOM,然後被linux系統本身給kill了。

應急措施

緊急在出問題的實例上再次啟動應用,啟動后,內存佔用正常,一切Okay。

奇怪現象

當前設置的最大堆內存是1792M,如下所示:

-Xmx1792m -Xms1792m -Xmn900m -XX:PermSi
ze=256m -XX:MaxPermSize=256m -server -Xss512k 

查看操作系統層面的監控,發現內存佔用情況如下圖所示:

上圖藍色的線表示總的內存使用量,發現一直漲到了4G后,超出了系統限制。
很明顯,有堆外內存泄露了。

查找線索

gc日誌

一般出現內存泄露,筆者立馬想到的就是查看當時的gc日誌。
本身應用所採用框架會定時打印出對應的gc日誌,遂查看,發現gc日誌一切正常。對應日誌如下:

查看了當天的所有gc日誌,發現內存始終會回落到170M左右,並無明顯的增加。要知道JVM進程本身佔用的內存可是接近4G(加上其它進程,例如日誌進程就已經到4G了),進一步確認是堆外內存導致。

排查代碼

打開線上服務對應對應代碼,查了一圈,發現沒有任何地方顯式利用堆外內存,其沒有依賴任何額外的native方法。關於網絡IO的代碼也是託管給Tomcat,很明顯,作為一個全世界廣泛流行的Web服務器,Tomcat不大可能有堆外內存泄露。

進一步查找

由於在代碼層面沒有發現堆外內存的痕迹,那就繼續找些其它的信息,希望能發現蛛絲馬跡。

Dump出JVM的Heap堆

由於線上出問題的Server已經被kill,還好有其它幾台,登上去發現它們也 佔用了很大的堆外內存,只是還沒有到觸發OOM的臨界點而已。於是就趕緊用jmap dump了兩台機器中應用JVM的堆情況,這兩台留做現場保留不動,然後將其它機器迅速重啟,以防同時被OOM導致服務不可用。
使用如下命令dump:

jmap -dump:format=b,file=heap.bin [pid]

使用MAT分析Heap文件

挑了一個heap文件進行分析,堆的使用情況如下圖所示:

一共用了200多M,和之前gc文件打印出來的170M相差不大,遠遠沒有到4G的程度。
不得不說MAT是個非常好用的工具,它可以提示你可能內存泄露的點:

這個cachedBnsClient類有12452個實例,佔用了整個堆的61.92%。
查看了另一個heap文件,發現也是同樣的情況。這個地方肯定有內存泄露,但是也佔用了130多M,和4G相差甚遠。

查看對應的代碼

系統中大部分對於CachedBnsClient的調用,都是通過註解Autowired的,這部分實例數很少。
唯一頻繁產生此類實例的代碼如下所示:

@Override
    public void fun() {
            BnsClient bnsClient = new CachedBnsClient();
          // do something
    		return  ;
	}

此CachedBnsClient僅僅在方法體內使用,並沒有逃逸到外面,再看此類本身

public class CachedBnsClient   {
    private ConcurrentHashMap<String, List<String>> authCache = new ConcurrentHashMap<String, List<String>>();
    private ConcurrentHashMap<String, List<URI>> validUriCache = new ConcurrentHashMap<String, List<URI>>();
    private ConcurrentHashMap<String, List<URI>> uriCache = new ConcurrentHashMap<String, List<URI>>();
	......
}

沒有任何static變量,同時也沒有往任何全局變量註冊自身。換言之,在類的成員(Member)中,是不可能出現內存泄露的。
當時只粗略的過了一過成員變量,回過頭來細想,還是漏了不少地方的。

更多信息

由於代碼排查下來,感覺這塊不應該出現內存泄露(但是事實確是如此的打臉)。這個類也沒有顯式用到堆外內存,而且只佔了130M,和4G比起來微不足道,還是先去追查主要矛盾再說。

使用jstack dump線程信息

現場信息越多,越能找出蛛絲馬跡。先用jstack把線程信息dump下來看下。
這一看,立馬發現了不同,除了正常的IO線程以及框架本身的一些守護線程外,竟然還多出來了12563多個線程。

"Thread-5" daemon prio=10 tid=0x00007fb79426e000 nid=0x7346 waiting on condition [0x00007fb7b5678000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
	at java.lang.Thread.sleep(Native Method)
	at com.xxxxx.CachedBnsClient$1.run(CachedBnsClient.java:62)

而且這些正好是運行再CachedBnsClient的run方法上面!這些特定線程的數量正好是12452個,和cachedBnsClient數量一致!

再次check對應代碼

原來剛才看CachedBnsClient代碼的時候遺漏掉了一個關鍵的點!

    public CachedBnsClient(BnsClient client) {
        super();
        this.backendClient = client;
        new Thread() {
            @Override
            public void run() {
                for (; ; ) {
                    refreshCache();
                    try {
                        Thread.sleep(60 * 1000);
                    } catch (InterruptedException e) {
                        logger.error("出錯", e);
                    }
                }
            }
            ......
        }.start();
    }

這段代碼是CachedBnsClient的構造函數,其在裏面創建了一個無限循環的線程,每隔60s啟動一次刷新一下裏面的緩存!

找到關鍵點

在看到12452個等待在CachedBnsClient.run的業務的一瞬間筆者就意識到,肯定是這邊的線程導致對外內存泄露了。下面就是根據線程大小計算其泄露內存量是不是確實能夠引起OOM了。

發現內存計算對不上

由於我們這邊設置的Xss是512K,即一個線程棧大小是512K,而由於線程共享其它MM單元(線程本地內存是是現在線程棧上的),所以實際線程堆外內存佔用數量也是512K。進行如下計算:

12563 * 512K = 6331M = 6.3G

整個環境一共4G,加上JVM堆內存1.8G(1792M),已經明顯的超過了4G。

(6.3G + 1.8G)=8.1G > 4G

如果按照此計算,應用應用早就被OOM了。

怎麼回事呢?

為了解決這個問題,筆者又思考了好久。如下所示:

Java線程底層實現

JVM的線程在linux上底層是調用NPTL(Native Posix Thread Library)來創建的,一個JVM線程就對應linux的lwp(輕量級進程,也是進程,只不過共享了mm_struct,用來實現線程),一個thread.start就相當於do_fork了一把。
其中,我們在JVM啟動時候設置了-Xss=512K(即線程棧大小),這512K中然後有8K是必須使用的,這8K是由進程的內核棧和thread_info公用的,放在兩塊連續的物理頁框上。如下圖所示:

眾所周知,一個進程(包括lwp)包括內核棧和用戶棧,內核棧+thread_info用了8K,那麼用戶態的棧可用內存就是:

512K-8K=504K

如下圖所示:

Linux實際物理內存映射

事實上linux對物理內存的使用非常的摳門,一開始只是分配了虛擬內存的線性區,並沒有分配實際的物理內存,只有推到最後使用的時候才分配具體的物理內存,即所謂的請求調頁。如下圖所示:

查看smaps進程內存使用信息

使用如下命令,查看

cat /proc/[pid]/smaps > smaps.txt

實際物理內存使用信息,如下所示:

7fa69a6d1000-7fa69a74f000 rwxp 00000000 00:00 0 
Size:                504 kB
Rss:                  92 kB
Pss:                  92 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:        92 kB
Referenced:           92 kB
Anonymous:            92 kB
AnonHugePages:         0 kB
Swap:                  0 kB
KernelPageSize:        4 kB
MMUPageSize:           4 kB

7fa69a7d3000-7fa69a851000 rwxp 00000000 00:00 0 
Size:                504 kB
Rss:                 152 kB
Pss:                 152 kB
Shared_Clean:          0 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:       152 kB
Referenced:          152 kB
Anonymous:           152 kB
AnonHugePages:         0 kB
Swap:                  0 kB
KernelPageSize:        4 kB
MMUPageSize:           4 kB

搜索下504KB,正好是12563個,對了12563個線程,其中Rss表示實際物理內存(含共享庫)92KB,Pss表示實際物理內存(按比例共享庫)92KB(由於沒有共享庫,所以Rss==Pss),以第一個7fa69a6d1000-7fa69a74f000線性區來看,其映射了92KB的空間,第二個映射了152KB的空間。如下圖所示:

挑出符合條件(即size是504K)的幾十組看了下,基本都在92K-152K之間,再加上內核棧8K

(92+152)/2+8K=130K,由於是估算,取整為128K,即反映此應用平均線程棧大小。

注意,實際內存有波動的原因是由於環境不同,從而走了不同的分支,導致棧上的增長不同。

重新進行內存計算

JVM一開始申請了

-Xmx1792m -Xms1792m

即1.8G的堆內內存,這裡是即時分配,一開始就用物理頁框填充。
12563個線程,每個線程棧平均大小128K,即:

128K * 12563=1570M=1.5G的對外內存

取個整數128K,就能反映出平均水平。再拿這個128K * 12563 =1570M = 1.5G,加上JVM的1.8G,就已經達到了3.3G,再加上kernel和日誌傳輸進程等使用的內存數量,確實已經接近了4G,這樣內存就對應上了!(注:用於定量內存計算的環境是一台內存用量將近4G,但還沒OOM的機器)

為什麼在物理機上沒有應用Down機

筆者登錄了原來物理機,應用還在跑,發現其同樣有堆外內存泄露的現象,其物理內存使用已經達到了5個多G!幸好物理機內存很大,而且此應用發布還比較頻繁,所以沒有被OOM。
Dump了物理機上應用的線程,

一共有28737個線程,其中28626個線程等待在CachedBnsClient上。 

同樣用smaps查看進程實際內存信息,其平均大小依舊為

128K,因為是同一應用的原因

繼續進行物理內存計算

1.8+(28737 * 128k)/1024K =(3.6+1.8)=5.4G

進一步驗證了我們的推理。

這麼多線程應用為什麼沒有卡頓

因為基本所有的線程都睡眠在

 Thread.sleep(60 * 1000);//一次睡眠60s

上。所以僅僅佔用了內存,實際佔用的CPU時間很少。

總結

查找Bug的時候,現場信息越多越好,同時定位Bug必須要有實質性的證據。例如內存泄露就要用你推測出的模型進行定量分析。在定量和實際對不上的時候,深挖下去,你會發現不一樣的風景!

公眾號

關注筆者公眾號,獲取更多乾貨文章:

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

※教你寫出一流的銷售文案?

※超省錢租車方案

※回頭車貨運收費標準

“節氣門”聽得多 “氣門”又是干什麼的?

而上述的16V發動機則是相對於之前8v發動機而言,一台8V的四缸發動機意味着每個氣缸兩個氣門,一個進氣門和一個排氣門,如果你現在在紙上畫一個圓,然後再從圓裏面取等大的圓,結果肯定是取的等大的圓越多,取出來總面積越大。

就在汽車越來越同質化的現在,連尾標也不如以前豐富,美國車競爭最激烈的時候,車內有一個CD機都要在尾標炫耀,而車主在路上碰到同款也會下意識看下他的尾標,是不是有帶電動車窗,現在除了花樣頗多的動力表示,僅僅只有各自的看家技術會單獨掛出來。

而國內汽車的尾標,說到當年愛麗舍上的16V尾標有多少朋友會有印象呢?

要是你當時還是個熊孩子可能會以為是一道沒出完的數學題。

要是你那會剛剛上了物理課,可能會以為這是代表着16V的電源。

其實這裏的V是氣門(valve)的簡稱。

我們都知道四衝程發動機的做工過程分別是吸氣,壓縮,做功,排氣。

從中也可以看出氣門的重要性,如果簡單把發動機比作人的話,那麼進氣量和排氣量就等同於我們人的肺活量,肺活量越高肯定運動能力更強。

像下面的入門玩家。

中等玩家。

高級玩家。

而上述的16V發動機則是相對於之前8v發動機而言,一台8V的四缸發動機意味着每個氣缸兩個氣門,一個進氣門和一個排氣門,如果你現在在紙上畫一個圓,然後再從圓裏面取等大的圓,結果肯定是取的等大的圓越多,取出來總面積越大。

所以單缸四氣門的“肺活量”肯定大於兩個氣門的發動機。

那照這樣說氣門越多越好咯,理論上是這樣,所以 以前還有單缸五個氣門的發動機。像法拉利的355。

其型號就表明了該身份,3.5L排量的發動機,每個氣缸5氣門。

而更接近生活的還有國內就有的捷達王20V(氣門為3進兩出)。

當時所有開過的人對這輛車的印象就是兩個字,好開。畢竟多了一肛。

說得那麼好為什麼現在基本上都是每個氣缸4氣門呢,捷達王的20V那麼好開為什麼沒有繼續發展呢?

我們下期再來聊發動機另外一個關鍵的東西,“凸輪軸“。

本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※帶您來了解什麼是 USB CONNECTOR  ?

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

※別再煩惱如何寫文案,掌握八大原則!