web-dev-qa-db-ja.com

私のシステムは利用可能なすべてのRAMを使用していますか?

16GBのRAMを搭載すべきでないマザーボードにインストールしました。より良いマザーボードを購入するか、何かを変更する必要がありますか?正常に動作しているようです。

メモリ: Crucial Ballistix Sport "(8GBx2)DDR3 PC3-12800"
ボード: Asrock N68C-S UCC "システムメモリの最大容量:8GB"

  1. gnome-control-center.real infoは嘘をついていますか?

    Memory: 15,7GB
    
  2. dmidecode -t16は、私のボードが合計2x 8GBまたは8GBを使用できると言っていますか?

     Maximum Capacity: 8 GB
     Number Of Devices: 2
    
  3. free -hは、15GBのうち11が使用されていると言っていますか?

                 total       used       free     shared    buffers     cached
    Mem:           15G        11G       4,2G       7,8G       140M       9,3G
    
  4. この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
    
4
cprn

短編:

Moboが投稿し、システムが起動し、free/topがRAMを16gBと表示している場合は、機能します。マザーボードメーカーでさえシステムボードの容量を過少報告する可能性があるため、実際のテストは、RAMが正しくインストールされ、正しく一致し、実行されるか、つまり起動し、安定して実行されるか、つまりクラッシュしないかどうかです。また、すべてのメモリを何かに使用して、システムが安定しているかどうかを確認してテストすることもできます。重要な非常に優れたRAMを入手したため、低グレードの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つのデバイスがあります。残念ながら、1つのスロットで使用できる最大スティックで全体の容量を推測することはできません。つまり、8gBの容量で4つのスロットを持つことができますが、スロットあたり最大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

15GBのうち11が使用されていると言っている無料の-h嘘はありますか?

いいえ、freeはあなたに真実を伝えています。 topは、同じ真実を教えてくれます(ただし、カーネルが無料と見なすかどうかの質問は非常に難解であり、これらのツールの実装によって異なります) 、しかし、それはこの質問のトピックから遠く離れています)。これは、アクセスできるRAMと使用されるRAMをユーザーランドに報告するカーネルです。

Dmidecode -t17のこの出力は1600MHzの速度を言うべきではありませんか?

それはあなたのシステムに依存します。そして、dmidecodeがデータをどのように解釈しているかについて。私は質問のこの部分にさびています。

長い話:

私はRAMレポートの問題にかなり重く対処しなければならなかったので、dmidecodeRAMデータレポートの品質のばらつきを発見する必要がありました。これはdmidecodeのせいではないことに注意してください。その仕事は、dmiデータを報告することであり、それを解釈したり修正したりすることではないからです。

1つ目:dmidecodeは基本的に2つのデータセットを報告します:1:誰かが入力したデータ、つまりマザーボードベンダーの低賃金ドローンに入力するフォームがあり、それを正しく実行しないか、実行しますあるモデルに適していて、そのデータを別のモデルにコピーするだけです。 2:RAMスロットにRAMがあるかどうか、サイズ、タイプ、速度などの実際のデータ。

したがって、システムボードのRAM容量の場合、dmidecodeは、実行時にdmidecodeで使用可能な実際の技術仕様に基づいて容量を通知しません。それがしていることは、前述の低賃金の人がハードウェアを出荷する前にいくつかのボックスをチェックするために記入するように言われたデータを繰り返すことです。

一部のmoboベンダーはこのデータを完全に提供しており、あなたは彼らのステートメントを完全に信頼することができます。他のものは完全に無意味なステートメントを提供します。これにより、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データのインスタンスを何百も表示できますが、実際には1つまたは2つしか表示されません。私は、優れたmoboメーカーは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が最大容量を過少報告する可能性があるもう1つの理由は、ボードの製造時にX GBスティックがまだ存在していなかった場合(またはボードの製造元が何らかの理由でスティックをテストしなかった場合)であるため、ボードはYGBをY <Xで最大ですが、X GBのスティックが表示されると、機能することがわかります。

重要なのは、dmidecodeがメモリ配列の持つ最大容量が計算されていないことを理解することです。これは、moboのdmiテーブルを作成するときに誰かが入力したデータにすぎません。私は通常、dmiデータよりもベンダーのmoboドキュメントを信頼していますが、このポスターが発見したように、それでも信頼できません。

6
Lizardx