Làm thế nào để tôi giải thích số liệu thống kê của một lần chạy memtest?


63

Tôi có một máy tính xách tay ở đây mà tôi nghi ngờ có một mô-đun bộ nhớ bị lỗi. Do đó, tôi đã tải xuống Memtest86 + và để nó chạy.

Lưu ý rằng ảnh chụp màn hình không phải là ảnh thật của tôi, nó được cung cấp bởi memtest86 +

ghi nhớ

Làm thế nào để tôi giải thích các con số trên màn hình? Tôi đã để nó chạy được khoảng bốn giờ và giờ tôi đã vượt qua 7.

Đặc biệt, làm gì

  • số kiểm tra
  • số lỗi
  • số lỗi ECC

biểu thị? Giá trị lành mạnh cho lỗi bộ nhớ là gì? Tại thời điểm nào tôi nên xem xét thay thế bộ nhớ?


3
Bạn muốn tiếp tục sử dụng bộ nhớ với bất kỳ lỗi nào?
Daniel Beck

4
Chỉ một lời khuyên :). Đừng bỏ qua các lỗi trong memtest. Chỉ một lỗi nhỏ trong RAM có thể phá vỡ một hệ điều hành hoàn chỉnh và gây mất dữ liệu.
Rufo El Magufo

2
Nói chung nếu bạn không nhìn thấy các khu vực màu đỏ nhấp nháy lớn thì tất cả đều tốt :-)
Col

5
Nếu các lỗi được giới hạn ở một khu vực cụ thể trong bộ nhớ và bạn đang chạy Linux, bạn có thể yêu cầu kernel bỏ qua các khu vực đó như được chỉ định ở đây: gquigs.blogspot.com/2009/01/bad-memory-howto.html Nếu bạn Đang chạy Windows, các lỗi không nằm trong một khu vực nhất quán hoặc có quá nhiều, bạn sẽ nhận được RAM mới.
dùng55325

4
Ngoài ra, nếu thẻ nhớ bắt đầu bị lỗi, có thể ngày càng nhiều khu vực bị lỗi. Bộ nhớ là rẻ so với chi phí lặp đi lặp lại săn dữ liệu tham nhũng và các sự cố hệ thống.
Zds

Câu trả lời:


82

TL; DR

Số quan trọng nhất đầu tiên: Số lỗi cho bộ nhớ khỏe phải là 0 . Bất kỳ số nào trên 0 có thể chỉ ra các khu vực bị hỏng / bị lỗi.


Màn hình giải thích

     Memtest86+ v1.00      | Progress of the entire pass (test series)
CPU MODEL and clock speed  | Progress of individual, current test
Level 1 cache size & speed | Test type that is currently running
Level 2 cache size & speed | Part of the RAM (sector) that is being tested
RAM size and testing speed | Pattern that is being written to the sector
Information about the chipset that your mainboard uses
Information about your RAM set-up, clock speed, channel settings, etc.

WallTime   Cached  RsvdMem   MemMap   Cache  ECC  Test  Pass  Errors  ECC Errs
---------  ------  -------  --------  -----  ---  ----  ----  ------  --------
Elapsed    Amount  Amount    Mapping  on     on   Test  # of  # of    # of ECC
time       of RAM  of        used     or     or   type  pass  errors  errors
           cached  reserved           off    off        done  found   found
                   RAM, not
                   tested

Giải thích dữ liệu / kiểm tra

MemTest chạy một số bài kiểm tra, nó viết các mẫu cụ thể cho mọi khu vực của bộ nhớ và lấy nó. Nếu dữ liệu được truy xuất khác với dữ liệu được lưu trữ ban đầu, MemTest sẽ đăng ký một lỗi và tăng số lỗi lên một. Lỗi thường là dấu hiệu của dải RAM xấu.

Vì bộ nhớ không chỉ là một notepad chứa thông tin mà có các chức năng nâng cao như bộ nhớ đệm, nên một số thử nghiệm khác nhau đã được thực hiện. Đây là những gì Test #chỉ ra. MemTest chạy một số thử nghiệm khác nhau để xem có lỗi xảy ra không.

Một số ví dụ kiểm tra (đơn giản hóa):

  • Kiểm tra các lĩnh vực theo thứ tự này: A, B, C, D, E, F. (Nối tiếp)
  • Kiểm tra các ngành theo thứ tự này: A, C, E, B, D, F. (Di chuyển)
  • Điền vào tất cả các lĩnh vực với mẫu: aaaaaaaa
  • Điền vào tất cả các lĩnh vực với một mô hình ngẫu nhiên.

Mô tả chi tiết hơn về tất cả các bài kiểm tra từ: https://www.memtest86.com/technical.htmlm#detailed

Kiểm tra 0 [Kiểm tra địa chỉ, những người đi bộ, không có bộ đệm]

Kiểm tra tất cả các bit địa chỉ trong tất cả các ngân hàng bộ nhớ bằng cách sử dụng mẫu địa chỉ đi bộ.

Kiểm tra 1 [Kiểm tra địa chỉ, địa chỉ riêng, Tuần tự]

Mỗi địa chỉ được viết với địa chỉ riêng và sau đó được kiểm tra tính nhất quán. Trong lý thuyết, các bài kiểm tra trước đây đã bắt gặp bất kỳ vấn đề giải quyết bộ nhớ. Thử nghiệm này sẽ nắm bắt bất kỳ lỗi địa chỉ nào mà trước đây không được phát hiện. Thử nghiệm này được thực hiện tuần tự với từng CPU có sẵn.

Kiểm tra 2 [Kiểm tra địa chỉ, địa chỉ riêng, Song song]

Giống như thử nghiệm 1 nhưng thử nghiệm được thực hiện song song bằng cách sử dụng tất cả các CPU và sử dụng các địa chỉ chồng chéo.

Kiểm tra 3 [Di chuyển nghịch đảo, số & số không, tuần tự]

Thử nghiệm này sử dụng thuật toán đảo ngược di chuyển với các mẫu của tất cả các số và số không. Bộ nhớ cache được bật ngay cả khi nó can thiệp ở một mức độ nào đó với thuật toán thử nghiệm. Với bộ đệm được kích hoạt, bài kiểm tra này không mất nhiều thời gian và sẽ nhanh chóng tìm thấy tất cả các lỗi "cứng" và một số lỗi tinh vi hơn. Bài kiểm tra này chỉ là một kiểm tra nhanh. Thử nghiệm này được thực hiện tuần tự với từng CPU có sẵn.

Kiểm tra 4 [Di chuyển nghịch đảo, số không & số không, Song song]

Giống như thử nghiệm 3 nhưng thử nghiệm được thực hiện song song bằng cách sử dụng tất cả các CPU.

Kiểm tra 5 [Di chuyển nghịch đảo, vỗ 8 bit]

Điều này giống như thử nghiệm 4 nhưng sử dụng mô hình "đi bộ" và số không rộng 8 bit. Thử nghiệm này sẽ phát hiện tốt hơn các lỗi tinh vi trong chip bộ nhớ "rộng".

Kiểm tra 6 [Di chuyển nghịch đảo, mẫu ngẫu nhiên]

Kiểm tra 6 sử dụng thuật toán tương tự như kiểm tra 4 nhưng mẫu dữ liệu là một số ngẫu nhiên và nó bổ sung. Thử nghiệm này đặc biệt hiệu quả trong việc tìm kiếm các lỗi nhạy cảm dữ liệu khó phát hiện. Chuỗi số ngẫu nhiên là khác nhau với mỗi lần vượt qua để nhiều lần vượt qua tăng hiệu quả.

Kiểm tra 7 [Di chuyển khối, 64 di chuyển]

Thử nghiệm này nhấn mạnh bộ nhớ bằng cách sử dụng các hướng dẫn di chuyển khối (Movsl) và dựa trên thử nghiệm burnBX của Robert Redelmeier. Bộ nhớ được khởi tạo với các mẫu dịch chuyển được đảo ngược cứ sau 8 byte. Sau đó, các khối bộ nhớ 4mb được di chuyển xung quanh bằng cách sử dụng lệnh Movsl. Sau khi di chuyển hoàn thành các mẫu dữ liệu được kiểm tra. Vì dữ liệu chỉ được kiểm tra sau khi hoàn thành việc di chuyển bộ nhớ nên không thể biết lỗi xảy ra ở đâu. Các địa chỉ được báo cáo chỉ dành cho nơi tìm thấy mô hình xấu. Vì các di chuyển bị giới hạn trong phân đoạn bộ nhớ 8mb, địa chỉ bị lỗi sẽ luôn cách địa chỉ được báo cáo ít hơn 8mb. Lỗi từ thử nghiệm này không được sử dụng để tính toán các mẫu BadRAM.

Kiểm tra 8 [Di chuyển nghịch đảo, vỗ 32 bit]

Đây là một biến thể của thuật toán đảo ngược di chuyển làm dịch chuyển mẫu dữ liệu còn lại một bit cho mỗi địa chỉ liên tiếp. Vị trí bit bắt đầu được dịch chuyển sang trái cho mỗi lần vượt qua. Để sử dụng tất cả các mẫu dữ liệu có thể cần 32 lượt. Thử nghiệm này khá hiệu quả trong việc phát hiện các lỗi nhạy cảm dữ liệu nhưng thời gian thực hiện dài.

Kiểm tra 9 [Chuỗi số ngẫu nhiên]

Bài kiểm tra này viết một loạt các số ngẫu nhiên vào bộ nhớ. Bằng cách đặt lại hạt giống cho số ngẫu nhiên, chuỗi số tương tự có thể được tạo ra để tham khảo. Mẫu ban đầu được kiểm tra và sau đó được bổ sung và kiểm tra lại ở lần tiếp theo. Tuy nhiên, không giống như việc kiểm tra và kiểm tra đảo ngược di chuyển chỉ có thể được thực hiện theo hướng thuận.

Kiểm tra 10 [Modulo 20, số & số không]

Sử dụng thuật toán Modulo-X sẽ phát hiện ra các lỗi không được phát hiện bằng cách di chuyển các nghịch đảo do bộ đệm và giao thoa đệm với thuật toán. Như với thử nghiệm, chỉ có một và các số không được sử dụng cho các mẫu dữ liệu.

Kiểm tra 11 [Kiểm tra độ phai bit, 90 phút, 2 mẫu]

Thử nghiệm phai bit khởi tạo tất cả bộ nhớ với một mẫu và sau đó ngủ trong 5 phút. Sau đó, bộ nhớ được kiểm tra để xem nếu có bất kỳ bit bộ nhớ đã thay đổi. Tất cả những cái và tất cả các mẫu không được sử dụng.

Bởi vì các thành phần xấu đôi khi có thể hoạt động và không hoạt động vào thời điểm khác, tôi khuyên bạn nên để MemTest chạy một vài lượt. Một vượt qua đầy đủ là một loạt thử nghiệm hoàn thành đã qua. (Loạt bài kiểm tra 1-11 ở trên) Bạn càng nhận được nhiều lượt vượt qua mà không có lỗi, thì việc chạy MemTest của bạn càng chính xác. Tôi thường chạy khoảng 5 lượt để chắc chắn.

Số lỗi cho bộ nhớ khỏe phải là 0. Bất kỳ số nào trên 0 có thể chỉ ra các khu vực bị hỏng / bị lỗi.

Số lỗi ECC chỉ nên được tính đến khi ECCđược đặt thành off. ECC là viết tắt của bộ nhớ mã sửa lỗi và đó là một cơ chế để phát hiện và sửa các bit sai trong trạng thái bộ nhớ. Nó có thể được so sánh một chút với các kiểm tra chẵn lẻ được thực hiện trên RAID hoặc phương tiện quang học. Công nghệ này khá tốn kém và nhiều khả năng sẽ chỉ gặp phải trong các thiết lập máy chủ. Đếm ECC đếm xem có bao nhiêu lỗi đã được sửa bởi cơ chế ECC của bộ nhớ. ECC không cần phải được gọi để có RAM khỏe, do đó, lỗi ECC trên 0 cũng có thể cho thấy bộ nhớ kém.


Giải thích lỗi

Ví dụ về Memtest đã gặp lỗi. Nó cho thấy khu vực / địa chỉ nào đã thất bại.

Màn hình Memtest có lỗi

Cột đầu tiên ( Tst ) cho thấy thử nghiệm nào thất bại, số tương ứng với số thử nghiệm từ danh sách đã được đề cập ở trên. Cột thứ hai ( Pass ) hiển thị nếu thử nghiệm đó đã qua. Trong trường hợp ví dụ, bài kiểm tra 7 không có điểm nào.

Cột thứ ba ( Địa chỉ không thành công ) hiển thị chính xác phần nào của bộ nhớ có lỗi. Một phần như vậy có một địa chỉ, giống như một địa chỉ IP, là địa chỉ duy nhất cho phần lưu trữ dữ liệu đó. Nó cho thấy địa chỉ nào thất bại và khối dữ liệu lớn như thế nào. (Ví dụ 0,8 MB)

Cột thứ tư ( Tốt ) và thứ năm ( Xấu ) hiển thị dữ liệu được ghi và những gì được truy xuất tương ứng. Cả hai cột phải bằng nhau trong bộ nhớ không bị lỗi (rõ ràng).

Cột thứ sáu ( Err-Bits ) hiển thị vị trí của các bit chính xác bị lỗi.

Cột thứ bảy ( Đếm ) hiển thị số lỗi liên tiếp có cùng địa chỉ và các bit bị lỗi.

Cuối cùng, cột cuối cùng, cột bảy ( Chan ) hiển thị kênh (nếu nhiều kênh được sử dụng trên hệ thống) mà dải bộ nhớ nằm trong.


Nếu nó tìm thấy lỗi

Nếu MemTest phát hiện ra bất kỳ lỗi nào, phương pháp tốt nhất để xác định mô-đun nào bị lỗi sẽ được đề cập trong câu hỏi Siêu người dùng này và câu trả lời được chấp nhận của nó:

Sử dụng quy trình loại bỏ - loại bỏ một nửa các mô-đun và chạy thử nghiệm lại ...

Nếu không có thất bại, thì bạn biết rằng hai mô-đun này là tốt, vì vậy hãy đặt chúng sang một bên và kiểm tra lại.

Nếu có lỗi, sau đó cắt giảm xuống một nửa (xuống một trong bốn mô-đun bộ nhớ bây giờ), sau đó kiểm tra lại.

Nhưng, chỉ vì một lần thử nghiệm thất bại, đừng cho rằng cái kia không thất bại (bạn có thể có hai mô-đun bộ nhớ bị lỗi) - trong đó bạn đã phát hiện ra lỗi với hai mô-đun bộ nhớ, hãy kiểm tra riêng hai mô-đun đó sau đó .

Lưu ý quan trọng: Với các tính năng như xen kẽ bộ nhớ và sơ đồ đánh số ổ cắm mô-đun bộ nhớ kém của một số nhà cung cấp bo mạch chủ, có thể khó biết mô-đun nào được đại diện bởi một địa chỉ nhất định.


Cảm ơn đã giải thích! Bạn có thể vui lòng trả lời làm thế nào để tìm ra mô-đun RAM chính xác tương ứng với một lỗi không? Tôi có Địa chỉ Không bằng 000c34e98dc - 3124.9MB. Tại sao một kích thước lớn như vậy? Tôi có các mô-đun 2x1Gb và 2x2Gb trong PC. Làm thế nào để tìm ra một trong những gây ra thất bại?
Mikhail

@Mikhail Tôi muốn giới thiệu cho bạn câu hỏi này và câu trả lời được chấp nhận của nó: superuser.com/questions/253875/iêu
BloodPhilia

0 lỗi không có nghĩa là RAM bị lỗi, tôi đã gặp trường hợp thanh RAM vượt qua memtest với số điểm 100% và chỉ bằng cách thay thế, tôi mới có thể giải quyết vấn đề khó khăn.
chàng người Brazil đó

3
Số tính bằng MB sau địa chỉ hex không phải là kích thước của lỗi, đó là vị trí lỗi tính bằng MB. Tôi khá chắc chắn rằng kích thước của bất kỳ một lỗi nào sẽ luôn là một từ, vì đó là kích thước của những gì nó ghi vào bộ nhớ.
Jarryd

6

Số lỗi

Khi trải qua các bài kiểm tra, nếu bộ nhớ không thành công cho bất kỳ bài kiểm tra nào, nó sẽ tăng số lỗi. Nếu tôi nhớ lại một cách chính xác, nó sẽ đếm số lượng địa chỉ thất bại trong bài kiểm tra.

Số lỗi ECC

Bộ nhớ ECC là một loại chip bộ nhớ đặc biệt được sử dụng để giữ cho dữ liệu không bị hỏng. ECC ErrsCột của bạn tính có bao nhiêu vấn đề đã được ECC khắc phục.

(ECC chậm và tốn kém và về cơ bản là dành cho các hệ thống quan trọng không thể làm phiền để trao đổi RAM.)

Bài kiểm tra số

Memtest thực hiện các loại thử nghiệm khác nhau trên bộ nhớ của bạn, được mô tả trên trang web Memtest86 . Cũng như một bản dịch tiếng Anh đơn giản nhanh chóng:

Kiểm tra 0: Kiểm tra địa chỉ đi bộ

Memtest sẽ ghi 00000001vào vị trí bộ nhớ đầu tiên, 00000010trong phần tiếp theo, v.v., lặp lại mẫu này cứ sau 8 byte. Sau đó, nó đọc bộ nhớ và đảm bảo rằng giá trị không thay đổi. ( Nguồn )

Kiểm tra 1 & 2: Kiểm tra địa chỉ địa chỉ riêng

Memtest ghi từng vị trí bộ nhớ với địa chỉ riêng và kiểm tra xem giá trị không thay đổi.

Thử nghiệm 1 là tuần tự và thử nghiệm 2 là song song (nghĩa là sử dụng đồng thời).

Kiểm tra nghịch đảo di chuyển 3 & 4

Về bản chất, thử nghiệm này tải 0s vào bộ nhớ, và sau đó

  1. lấy từng vị trí của bộ nhớ (bắt đầu từ vị trí đầu tiên / thấp nhất),
  2. và viết nghịch đảo của mẫu (tôi sẽ tin rằng nó hơi KHÔNG, nhưng tôi không thể tìm thấy bất kỳ tài liệu nào về điều đó).

Mục tiêu ở đây là cố gắng kiểm tra từng bit và các bit liền kề của nó "mọi sự kết hợp có thể có của 0 và 1".

Kiểm tra 3 không sử dụng đồng thời, trong khi kiểm tra 4 thì không.

Kiểm tra 5: Di chuyển nghịch đảo, Pat 8 bit

Điều này thực hiện lại phương pháp đảo ngược di chuyển, nhưng lần này với các bước 1 từ kiểm tra 0 trong các khối 8 bit.

Kiểm tra 6: Di chuyển nghịch đảo, mô hình ngẫu nhiên

Memtest sử dụng số ngẫu nhiên thay vì tất cả 0 hoặc đi bộ 1s.

Kiểm tra 7: Di chuyển khối

Đây là một niềm vui. Nó tải các mẫu vào bộ nhớ, di chuyển chúng xung quanh theo các khối 4mb và xác minh chúng.

Kiểm tra 8: Đảo ngược di chuyển, Pat 32 bit

Tương tự như thử nghiệm 5, nhưng sử dụng các khối 32 bit thay thế. Cái này thực tế tải mọi giá trị 32 bit có thể có ở mọi vị trí.

Bài kiểm tra 9: Số ngẫu nhiên

Cái này tải các số giả ngẫu nhiên vào bộ nhớ và xác minh. Điều thú vị về trình tạo số giả ngẫu nhiên là nó không ngẫu nhiên lắm (nếu bạn đã từng chạy printf("%d", rand());trong chương trình C mà không cần gieo hạt và nhận được số 41 rất ngẫu nhiên, bạn hiểu ý tôi). Vì vậy, nó xác minh bằng cách đặt lại bộ tạo số ngẫu nhiên và chạy lại trình tạo.

Kiểm tra 10: Modulo-X

Cứ 20 vị trí, nó viết một mẫu (tất cả 0 hoặc tất cả 1) và viết phần bổ sung ở tất cả các vị trí khác, sau đó xác minh.

Kiểm tra 11: Kiểm tra độ phai bit

Cái này tải RAM với tất cả 1 giây (và một lần nữa với tất cả 0), đợi 5 phút và xem liệu có bất kỳ giá trị nào thay đổi không.


6

Số kiểm tra: số lượng kiểm tra cụ thể mà memtest hiện đang chạy. Hiện có rất nhiều trong số họ.

Số lỗi: Số lỗi bộ nhớ gặp phải

Lỗi ECC: Số lỗi được sửa bởi ECC. Chipset / bộ nhớ của bạn không có ECC, vì vậy con số này không thành vấn đề.

Nếu bộ nhớ của bạn có bất kỳ số lỗi nào trên 0, bạn sẽ muốn thay thế nó.

EDIT: Các bài kiểm tra là các mẫu khác nhau mà memtest ghi vào bộ nhớ. Nó ghi các mẫu khác nhau vào bộ nhớ và đọc lại để kiểm tra lỗi và nó sử dụng các mẫu khác nhau để có thể kiểm tra tất cả các trạng thái của tất cả các bit.

Số đếm cho biết số lần kết quả đọc lại vào memtest không khớp với những gì nó ghi vào bộ nhớ, biểu thị rằng có một lỗi trong đoạn bộ nhớ đang được kiểm tra.

ECC là một công nghệ sửa lỗi được tích hợp vào chip bộ nhớ cho máy chủ và máy trạm. Hầu hết các dekstops không hỗ trợ các mô-đun bộ nhớ có ECC tích hợp. Hầu như tất cả các máy chủ / máy trạm đều hỗ trợ cho nó và thường yêu cầu nó. Số lỗi được sửa bởi ECC là số lỗi mà chip ECC đã sửa thành công.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.