我的系統是否使用了所有可用的 RAM?
我在不應該佔用它的主機板上安裝了 16GB 的 RAM。我應該購買更好的主機板還是改變任何東西?它似乎工作正常。
記憶體:Crucial Ballistix Sport “(8GBx2) DDR3 PC3-12800”
主機板:Asrock N68C-S UCC “最大系統記憶體容量:8GB”
gnome-control-center.real info
撒謊嗎?Memory: 15,7GB
- 是否
dmidecode -t16
說我的主機板總共可以佔用 2x 8GB 或 8GB?Maximum Capacity: 8 GB Number Of Devices: 2
free -h
撒謊說使用了 15GB 中的 11 個嗎?total used free shared buffers cached Mem: 15G 11G 4,2G 7,8G 140M 9,3G
- 這個輸出不應該
dmidecode -t 17
說 1600 MHz 的速度嗎?Handle 0x0010, DMI type 17, 27 bytes Size: 8192 MB Speed: 400 MHz Handle 0x0012, DMI type 17, 27 bytes Size: 8192 MB Speed: 400 MHz
短篇小說:
如果您的主機板發布,並且您的系統啟動,並且 free/top 將您的 ram 顯示為 16 GB,那麼它可以工作。甚至主機板製造商也可能低估系統板的容量,因此真正的測試是如果正確安裝了ram,匹配正確,執行,即啟動,並且執行穩定,即不會崩潰,那麼它是否可以工作。您還可以通過嘗試將所有記憶體用於某事或其他內容來進行測試,並查看系統是否保持穩定。因為你有非常好的記憶體,所以很重要的是,較低級別的記憶體很可能無法在 16gB 上工作。這就是為什麼他們不說它支持 16gB 而是選擇更保守的 8gB 的原因。
你的工具,比如 free,top,報告系統的真實記憶體,沒有說謊,這是核心可以訪問的可用記憶體。讀取 dmi 數據的工具確實會撒謊,因為 dmi 根據填寫該數據的公司隨機撒謊。
gnome-control-center.real 資訊會撒謊嗎?
Memory: 15,7GB
不,它在告訴你真相。
dmidecode -t16 是否說我的主機板總共可以佔用 2x 8GB 或 8GB?
Maximum Capacity: 8 GB Number Of Devices: 2
它說總共8gB。在查看樣本類型 16(在本例中為我的樣本)時,您可以清楚地看到它。容量是指陣列的容量。這是一個單一的記憶體陣列。這個陣列的容量為 8gB(在我的情況下是正確的),在我的情況下,它有 4 個設備。在您的情況下,它有 2 個設備。請注意,不幸的是,您無法通過可以在一個插槽中使用的最大搖桿來推斷總容量。也就是說,您可以有 4 個插槽,容量為 8gB,但每個插槽最大為 4gB,這意味著您可以使用 4x2gG 棒或 2x4gB,但不能使用 4x4gB。
Handle 0x0012, DMI type 16, 15 bytes Physical Memory Array Location: System Board Or Motherboard Use: System Memory Error Correction Type: None Maximum Capacity: 8 GB Error Information Handle: Not Provided Number Of Devices: 4
free -h 是否在說 15GB 中的 11 個被使用?
不,免費告訴你真相。top會告訴你同樣的事實(儘管核心認為什麼是免費的或不免費的問題非常神秘,並且隨著這些工具的實現而變化,但這與這個問題的主題相去甚遠)。這是核心向使用者空間報告它可以訪問的記憶體以及使用的記憶體。
dmidecode -t 17 的輸出不應該說 1600 MHz 的速度嗎?
這取決於您的系統。以及 dmidecode 如何解釋數據。我對這部分問題生疏了。
長篇大論:
由於我必須大量處理 ram 報告問題,我必鬚髮現 dmidecode ram 數據報告的質量差異。請注意,這不是 dmidecode 的錯,因為它的工作是報告 dmi 數據,而不是解釋或糾正它。
第一:dmidecode本質上報告了兩組數據: 1:有人填寫的一些數據,也就是主機板廠商的低薪無人機有表格要填寫,要麼懶得做對,要麼做對了適合一個模型,然後只需將該數據複製到另一個模型。2:真實數據,如記憶體插槽是否有記憶體,大小,類型,速度等。
因此,在系統板記憶體容量的情況下,dmidecode 不會根據 dmidecode 執行時可用的任何實際技術規格告訴您容量。它正在做的是重複上述數據不足的人被告知在運送硬體之前填寫以檢查某些框的數據。
一些主機板供應商完美地提供了這些數據,你可以完全相信他們的陳述。其他人提供完全無意義的陳述,這導致 dmidecode 正確報告已安裝 4x2gB ram,但容量為 4gB。
例如,我相信 dmidecode 幾乎總是(如果不是總是)會非常準確地告訴您有關已安裝 ram 的完全正確的資訊,但是 dmi 數據通常會包含有關容量的錯誤數據。
當我不得不處理這個問題時,我總是使用每棒報告作為權威,我總是讓它覆蓋關於實際容量的 dmidecode 數據,因為後者不是真實數據。
# can be true, false, totally off, or pure fiction re capacity # the rest of the data is usually pretty good though dmidecode -t 5 # extremely accurate and reliable, per stick information. Trust it. dmidecode -t 6 # same as 5, might be right re maximum capacity, might not be dmidecode -t 16 # extremely accurate, can trust it, but can't learn max dmidecode -t 17 capacity.
基本上看主機板廠商,5和16使用的數據欄位是否填寫正確?我會給你一個例子,清楚地顯示他們不想填寫的欄位。
Handle 0x001A, DMI type 17, 27 bytes Memory Device Array Handle: 0x0012 Error Information Handle: Not Provided Total Width: 64 bits Data Width: 72 bits Size: 2048 MB Form Factor: DIMM Set: None Locator: DIMM3 Bank Locator: BANK3 Type: DDR2 Type Detail: Synchronous Speed: 400 MHz Manufacturer: Manufacturer3 Serial Number: SerNum3 Asset Tag: AssetTagNum3 Part Number: PartNum3
您可以通過dmi數據看到這一切,在/sys內部,未填寫的數據,供應商填寫的一半或填寫錯誤的數據。速度後的項目沒有填寫正確。我個人最喜歡的是這個,這在內部比你想像的要普遍得多:
[Field Name]: To be filled by O.E.M.
你會認為在這個時代會有一些東西可以真正告訴系統它是什麼,但遺憾的是事實並非如此。
我可以向您展示數百個證明此問題的機器 dmidecode 數據實例,但實際上您只需要查看一兩個。我傾向於認為更好的主機板製造商傾向於更好地填寫他們的 dmi 數據集,而低端的主機板往往不會這樣做,但沒有硬性規定。
作為基本規則,這是您可以從 dmidecode 和 ram 信任的資訊:
DMI type 5 # Almost nothing in there except some generic information Error Detecting Method: 64-bit ECC Error Correcting Capabilities:: None Associated Memory Slots: 4 Enabled Error Correcting Capabilities: None DMI type 6 Socket Designation: DIMM3 Current Speed: 167 ns Installed Size: 2048 MB (Double-bank Connection) Enabled Size: 2048 MB (Double-bank Connection) Error Status: OK # probably DMI type 16 Number Of Devices: 4 DMI type 17 Data Width: 72 bits Size: 2048 MB Locator: DIMM0 Bank Locator: BANK0 Type: DDR2 Type Detail: Synchronous # usually anyway
來自 Gilles,在評論中:
dmidecode 可能低估最大容量的另一個原因是,在製造板時 X GB 棒還不存在(或者板製造商出於某種原因沒有費心對其進行測試),因此板將 Y GB 記錄為Y < X 的最大值,但是當 X GB 棒出現時,它們會起作用。
關鍵是要意識到 dmidecode 報告的記憶體陣列具有的最大容量不是計算出來的,它只是有人在為主機板創建 dmi 表時輸入的一些數據。我通常相信供應商主機板文件而不是 dmi 數據,但正如這張海報所發現的那樣,即使這樣也不可靠。