计算机内存知识txt,计算机新手必备内存实用知识.docx
在電腦硬件中,CPU和顯卡、內(nèi)存均是重中之重,因此我們在選擇這些核心硬件一定要慎重考慮。下面就讓小編帶你去看看計(jì)算機(jī)新手必備內(nèi)存實(shí)用知識,希望能幫助到大家!
內(nèi)存總是不夠?HBase&GeoMesa配置優(yōu)化了解一下
1、先熟悉一下HBase的內(nèi)存模型
HBase系統(tǒng)中有兩塊大的內(nèi)存管理模塊,一塊是MemStore
,一塊是BlockCache,前置是用于集群寫入所屬內(nèi)存,而后者用于緩存熱數(shù)據(jù),提供查詢速度。這兩者均可以通過配置文件進(jìn)行配置。當(dāng)前集群均配置了0.4和0.4的比例。而考慮到HBase集群是多寫少讀的情景,為此而引入了MSLAB機(jī)制來優(yōu)化HBase的MemStore
負(fù)擔(dān)。內(nèi)存的使用率會(huì)呈現(xiàn)很優(yōu)美的鋸齒圖形。
2、分析內(nèi)存使用率和業(yè)務(wù)關(guān)系
起初認(rèn)為是讀寫業(yè)務(wù)量已經(jīng)超過了集群負(fù)載能力,但集群業(yè)務(wù)也不大,寫和讀的TPS,帶寬吞吐量均未達(dá)到集群限定的能力,而且CPU利用率大多半都被GC占用,但內(nèi)存就是持高不下,即使業(yè)務(wù)了停了一天,內(nèi)存還是不怎么下降,很明顯和業(yè)務(wù)量無關(guān)。那么和compaction有關(guān)?經(jīng)觀察的確可以看compact時(shí)特別消耗時(shí)間。此時(shí)感覺看到了希望,調(diào)整各個(gè)參數(shù),把compact操作提升了10+倍之后,內(nèi)存還是持高不下
。剩下最根治的辦法就是分析內(nèi)存,看一下內(nèi)存數(shù)據(jù)都是什么?有無內(nèi)存泄露問題。
3、分析dunp文件
節(jié)點(diǎn)dump下regionserver的內(nèi)存,分析發(fā)現(xiàn)內(nèi)存中有50個(gè)RpcServer.FifoRWQ.default.read.handler線程,每個(gè)線程持有了1.2%左右的總內(nèi)存,那么所有的線程持有的內(nèi)存占有量大于為50__1.2%=60%。隨著查詢次數(shù)增多,線程持續(xù)的內(nèi)存還會(huì)持續(xù)增加,如下圖。
分析每一個(gè)線程持有的內(nèi)存數(shù)據(jù),全部都是業(yè)務(wù)信息。
那么繼續(xù)分析,此業(yè)務(wù)信息所屬對象:org.locationtech.geomesa.filter.factory.FastFilterFactory。而對比同規(guī)模的集群,的確是此異常集群開啟了GeoMesa特性。找到問題所在,那就看源碼分析是唯一出路。
導(dǎo)致集群隨著查詢次數(shù)增多,內(nèi)存一直持續(xù)不下。能否去掉此處緩存策略呢?為什么緩存此查詢信息呢,目的就是為了減少同樣的查詢再次被優(yōu)化的步驟。那么我們查詢添?xiàng)l件key有沒有重復(fù)使用,此處有個(gè)嚴(yán)格規(guī)定,就是key中不僅保證使用相同的GeoMesa函數(shù)還有使用相同的參數(shù),基于這個(gè)原則,業(yè)務(wù)上查詢條件是沒有重復(fù)的。我們配置了可選參數(shù)useFilterCache,默認(rèn)是開啟的,沒必要緩存此查詢條件,應(yīng)予以刪除。
結(jié)論
在配置文件中添加了useFilterCache參數(shù),默認(rèn)是開啟的,根據(jù)業(yè)務(wù)需要選擇開始和關(guān)閉filterCache特效。經(jīng)分析我們業(yè)務(wù)場景沒必要緩存此查詢條件,應(yīng)予以關(guān)閉。優(yōu)化后的集群內(nèi)存使用率情況就恢復(fù)了正常狀態(tài)。
計(jì)算機(jī)內(nèi)存和CPU的基礎(chǔ)知識
內(nèi)存的基本單元是一個(gè)字節(jié)。一臺(tái)有32兆內(nèi)存的電腦大概能容納3200萬字節(jié)的信息。在內(nèi)存里的每一個(gè)字節(jié)通過一個(gè)唯一的數(shù)字來標(biāo)識作為它的地址,如圖1.4展示的一樣。
通常內(nèi)存都是大塊大塊地使用而不是單個(gè)字節(jié)。在PC機(jī)結(jié)構(gòu)中,命名了這些內(nèi)存大塊,如圖1.2展示的一樣。
在內(nèi)存里的數(shù)據(jù)都是數(shù)字的。字符通過用數(shù)字來表示字符的字符編碼來儲(chǔ)存。其中一個(gè)最普遍的字符編碼稱為ASCII的編碼是Unicode。在這兩種編碼中最主要的區(qū)別是ASCII使用一個(gè)字節(jié)來編碼一個(gè)字符,但是Unicode每個(gè)字符使用兩個(gè)字節(jié)(或一個(gè)字)。例如ASCII使用來表示字符大寫A;Unicode使用來表示。因?yàn)锳SCII使用一個(gè)字節(jié),所以它僅能表示256種不同的字符。Unicode將ASCII的值擴(kuò)展成一個(gè)字,允許表示更多的字符。這對于表示全世界所有的語言非常重要。
CPU
中央處理器(CPU)是執(zhí)行指令的物理設(shè)備。CPU執(zhí)行的指令通常非常簡單。指令可能要求他們使用的數(shù)據(jù)存儲(chǔ)在一個(gè)CPU稱為寄存器的特殊儲(chǔ)存位置中。CPU可以比訪問內(nèi)存更快地訪問寄存器里的數(shù)據(jù)。然而,在CPU里的寄存器是有限的,所以程序員必須注意只保存現(xiàn)在使用的數(shù)據(jù)到寄存器中。各類CPU執(zhí)行的指令組成了該CPU的機(jī)器語言。機(jī)器語言擁有比高級語言更基本的結(jié)構(gòu)。機(jī)器語言指令被編碼成未加工的數(shù)字,而不是友好的文本格式。為了更有效的運(yùn)行,CPU必須能很快地解釋一個(gè)指令的目的.機(jī)器語言就是為了這個(gè)目的設(shè)計(jì)的,而不是讓人們更容易理解而設(shè)計(jì)。一個(gè)其他語言寫的程序必須轉(zhuǎn)換成CPU的本地機(jī)器語言,才能在電腦上運(yùn)行。編譯器是一個(gè)將用用程序語言寫的程序翻譯成特殊結(jié)構(gòu)的電腦的機(jī)器語言的程序。通常,每一種類型的CPU都有它自己唯一的機(jī)器語言。這是為什么為Mac寫的程序不
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的计算机内存知识txt,计算机新手必备内存实用知识.docx的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微型计算机原理应用总结,微机原理总结
- 下一篇: 计算机游戏的英文单词,关于游戏的英语词汇