Điểm:3

RAM đã trở nên rất chậm, tốc độ ghi thấp và độ trễ cao

lá cờ bv

Tôi đã xác định được sự cố với tốc độ bộ nhớ và độ trễ trên máy chủ của mình. Tôi đang thuê máy chủ này từ OVH và một trong những yêu cầu của họ trước khi thay thế RAM là

Để khởi động một biện pháp can thiệp, bạn cần gửi nhật ký trong vé của mình hiển thị mã định danh và mô-đun RAM bị ảnh hưởng.

Làm cách nào tôi có thể phát hiện chip DRAM bị lỗi mà không chạy memtest86+ trong nhiều ngày vì đây là máy chủ sản xuất lớn (RAM 1TB).

sysbench --test=memory --memory-block-size=4G --memory-total-size=32G run

CẢNH BÁO: tùy chọn --test không được dùng nữa. Bạn có thể chuyển tên tập lệnh hoặc đường dẫn trên dòng lệnh mà không cần bất kỳ tùy chọn nào.
sysbench 1.0.18 (sử dụng hệ thống LuaJIT 2.1.0-beta3)

Chạy thử nghiệm với các tùy chọn sau:
Số chủ đề: 1
Đang khởi tạo trình tạo số ngẫu nhiên từ thời điểm hiện tại


Chạy kiểm tra tốc độ bộ nhớ với các tùy chọn sau:
  kích thước khối: 4194304KiB
  tổng kích thước: 32768MiB
  hoạt động: viết
  phạm vi: toàn cầu

Đang khởi tạo chuỗi công nhân...

Chủ đề bắt đầu!

Tổng số hoạt động: 2 ( 0,15 mỗi giây)

8192,00 MiB được truyền (630,16 MiB/giây)


Thống kê chung:
    tổng thời gian: 12,9937s
    tổng số sự kiện: 2

Độ trễ (ms):
         tối thiểu: 6338,94
         trung bình: 6496,29
         tối đa: 6653,64
         Phân vị thứ 95: 6594,16
         tổng: 12992,58

Chủ đề công bằng:
    sự kiện (avg/stddev): 2,0000/0,00
    thời gian thực hiện (avg/stddev): 12,9926/0,00

sysbench --test=memory --memory-block-size=1K --memory-total-size=100G --num-threads=1 lần chạy

CẢNH BÁO: tùy chọn --test không được dùng nữa. Bạn có thể chuyển tên tập lệnh hoặc đường dẫn trên dòng lệnh mà không cần bất kỳ tùy chọn nào.
sysbench 1.0.18 (sử dụng hệ thống LuaJIT 2.1.0-beta3)

Chạy thử nghiệm với các tùy chọn sau:
Số chủ đề: 1
Đang khởi tạo trình tạo số ngẫu nhiên từ thời điểm hiện tại


Chạy kiểm tra tốc độ bộ nhớ với các tùy chọn sau:
  kích thước khối: 1KiB
  tổng kích thước: 102400MiB
  hoạt động: viết
  phạm vi: toàn cầu

Đang khởi tạo chuỗi công nhân...

Chủ đề bắt đầu!

Tổng số hoạt động: 48693603 (4868132,10 mỗi giây)

47552,35 MiB được truyền (4754,04 MiB/giây)


Thống kê chung:
    tổng thời gian: 10,0002 giây
    tổng số sự kiện: 48693603

Độ trễ (ms):
         tối thiểu: 0,00
         trung bình: 0,00
         tối đa: 0,47
         Phần trăm thứ 95: 0,00
         tổng: 4155,88

Chủ đề công bằng:
    sự kiện (avg/stddev): 48693603.0000/0.00
    thời gian thực hiện (avg/stddev): 4,1559/0,00

Sudo lshw -short -C bộ nhớ

Đường dẫn H/W Loại thiết bị Mô tả
================================================================= ========
/0/0 bộ nhớ 64KiB BIOS
/0/20 bộ nhớ Bộ nhớ hệ thống 1TiB
/0/20/0 bộ nhớ [trống]
/0/20/1 bộ nhớ 128GiB DIMM DDR4 LRDIMM đồng bộ 2933 MHz (0,3 ns)
/0/20/2 bộ nhớ [trống]
/0/20/3 bộ nhớ 128GiB DIMM DDR4 LRDIMM đồng bộ 2933 MHz (0,3 ns)
/0/20/4 bộ nhớ [trống]
/0/20/5 bộ nhớ 128GiB DIMM DDR4 LRDIMM đồng bộ 2933 MHz (0,3 ns)
/0/20/6 bộ nhớ [trống]
/0/20/7 bộ nhớ 128GiB DIMM DDR4 LRDIMM đồng bộ 2933 MHz (0,3 ns)
/0/20/8 bộ nhớ [trống]
/0/20/9 bộ nhớ 128GiB DIMM DDR4 LRDIMM đồng bộ 2933 MHz (0,3 ns)
/0/20/một bộ nhớ [trống]
/0/20/b bộ nhớ 128GiB DIMM DDR4 LRDIMM đồng bộ 2933 MHz (0,3 ns)
/0/20/c bộ nhớ [trống]
/0/20/d bộ nhớ 128GiB DIMM DDR4 LRDIMM đồng bộ 2933 MHz (0,3 ns)
/0/20/e bộ nhớ [trống]
/0/20/f bộ nhớ 128GiB DIMM DDR4 LRDIMM đồng bộ 2933 MHz (0,3 ns)
/0/23 bộ nhớ đệm 3MiB L1
/0/24 bộ nhớ cache 24MiB L2
/0/25 bộ nhớ đệm 256MiB L3
Điểm:1
lá cờ gn

Đây là một nhận xét dài hơn là một câu trả lời. Có thể nó sẽ kích thích các đề xuất khác. Ý tưởng cơ bản là dự trữ và phân bổ bộ nhớ sao cho sysbench sau đó phải sử dụng một vùng bộ nhớ khác cho bộ đệm khối bộ nhớ của nó để quan sát xem hiệu suất có giống nhau trên tất cả bộ nhớ hay không.

Hệ thống thử nghiệm chỉ có 32G bộ nhớ trên các DIMM 4X8G.

Đầu tiên, chỉ cần chạy sysbench bình thường, nhưng tăng thời lượng kiểm tra đủ để có thời gian thu thập một số thông tin trong khi nó thực thi:

doug@s19:~/c$ sysbench --test=memory --memory-block-size=4G --memory-total-size=512G --num-threads=1 --time=60 run
CẢNH BÁO: tùy chọn --test không được dùng nữa. Bạn có thể chuyển tên tập lệnh hoặc đường dẫn trên dòng lệnh mà không cần bất kỳ tùy chọn nào.
sysbench 1.0.18 (sử dụng hệ thống LuaJIT 2.1.0-beta3)

Chạy thử nghiệm với các tùy chọn sau:
Số chủ đề: 1
Đang khởi tạo trình tạo số ngẫu nhiên từ thời điểm hiện tại


Chạy kiểm tra tốc độ bộ nhớ với các tùy chọn sau:
  kích thước khối: 4194304KiB
  tổng kích thước: 524288MiB
  hoạt động: viết
  phạm vi: toàn cầu

Đang khởi tạo chuỗi công nhân...

Chủ đề bắt đầu!

Tổng số hoạt động: 128 ( 3,05 mỗi giây)

524288,00 MiB được truyền (12509,51 MiB/giây)


Thống kê chung:
    tổng thời gian: 41,9101 giây
    tổng số sự kiện: 128

Độ trễ (ms):
         tối thiểu: 327,22
         trung bình: 327,42
         tối đa: 328,09
         Phân vị thứ 95: 325,98
         tổng: 41909,72

Chủ đề công bằng:
    sự kiện (avg/stddev): 128.0000/0.00
    thời gian thực hiện (avg/stddev): 41.9097/0.00

Và trong 41 giây mà bài kiểm tra đã thực hiện và trong một thiết bị đầu cuối khác, tôi đã làm điều này:

doug@s19:~$ ps aux | grep sysbench
doug 10489 92,2 12,8 4227496 4204436 điểm/1 Sl+ 09:48 0:03 sysbench --test=memory --memory-block-size=4G --memory-total-size=512G --num-threads=1 --time =60 lần chạy
doug 10492 0.0 0.0 9040 732 điểm/2 S+ 09:48 0:00 grep --color=auto sysbench
doug@s19:~$ pmap 10489 | grep anon | grep "4195"
00007f25cbb5a000 4195456K rw--- [ anon ]

Tôi đã làm toàn bộ chu kỳ một vài lần:

00007fa4bd7b4000 4195456K rw--- [ anon ]
00007f32c9878000 4195456K rw--- [ anon ]
00007f4837211000 4195456K rw--- [ anon ]

điều này cho thấy chúng tôi thực sự không biết bộ nhớ nào được sử dụng hoặc ánh xạ trở lại DIMM. Hãy tiếp tục nào.

CHỈNH SỬA: những điều trên có thể được thực hiện lặp lại, bằng cách tắt Ngẫu nhiên bố cục không gian địa chỉ (ASLR):

Sudo sysctl kernel.randomize_va_space=0

Bây giờ, hãy dự trữ một số đoạn bộ nhớ để buộc bộ đệm sysbench được phân bổ ở nơi khác. Ai đó có thể có ý tưởng hay hơn, nhưng tôi đã viết một chương trình:

doug@s19:~/c$ cat Reservem.c
/*************************************************** ******************************
*
* Reservem.c 2021.07.20 Smythies
* phân bổ một đoạn bộ nhớ trong một thời gian.
* sử dụng hiện tại là buộc một chương trình khác sử dụng một khu vực khác
* của bộ nhớ.
* xem thêm: https://askubuntu.com/questions/1352756/ram-has-become-very-slow-low-write-speed-and-high-latency
* xem slao testm.c mà từ đó mã này bắt đầu.
*
*************************************************** ******************************/

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main(){
   ký tự *fptr;
   tôi dài, k;

/* Điều chỉnh cho phù hợp với yêu cầu sử dụng */
   tôi = 8589934592;

   if(( fptr = (char *)malloc(i)) == NULL){
      printf("reservem: cấp phát bộ nhớ không thành công, Đang thoát...\n");
      thoát(-1);
   }
   trong khi (( fptr == NULL) && (i > 0));
   for(k = 0; k < i; k++){ /* để bộ nhớ thực sự được cấp phát chứ không chỉ dành riêng */
      fptr[k] = (char) (k & 255);
   } /* kết thúc */
   printf("reservem: dành riêng và cấp phát bộ nhớ. đang ngủ...\n");
   ngủ(180); /* để có thể thực hiện các kiểm tra và quan sát khác. Điều chỉnh theo yêu cầu. */
   miễn phí(fptr);
   printf("reservem: bộ nhớ đã được giải phóng. Xong và thoát...\n");
   trả lại (0);
} /* kết thúc chương trình */

Biên soạn nó:

doug@s19:~/c$ cc Reservem.c -o Reservem

sau đó chạy nó và sau đó thực hiện lại các bước trước đó trong khi khối bộ nhớ được dành riêng và cấp phát. Nhận:

doug@s19:~$ ps aux | grep sysbench
doug 11324 93,8 12,8 4227496 4204340 điểm/1 Sl+ 13:58 0:09 sysbench --test=memory --memory-block-size=4G --memory-total-size=512G --num-threads=1 --time =60 lần chạy
doug 11327 0.0 0.0 9040 664 điểm/2 S+ 13:59 0:00 grep --color=auto sysbench
doug@s19:~$ pmap 11324 | grep anon | grep "4195"
00007fc5f2df8000 4195456K rw--- [ anon ]

Và đối với bộ nhớ dành riêng:

doug@s19:~$ ps aux | dự trữ grep
doug 11314 55.0 25.6 8391108 8389584 điểm/0 S+ 13:57 0:11 ./reservem
doug 11318 0.0 0.0 9040 740 điểm/2 S+ 13:57 0:00 grep --color=autoservem
doug@s19:~$ pmap 11314 | grep anon | grep "8388612K"
00007f11a6bfc000 8388612K rw--- [ anon ]

Và:

524288,00 MiB được truyền (12499,79 MiB/giây)

Tương tự cho đặt trước và cấp phát 8G lần 2 và lần 3:

doug@s19:~$ ps aux | dự trữ grep
doug 11335 85.0 25.6 8391108 8389704 điểm/0 S 14:07 0:11 ./reservem
doug 11336 92.0 25.6 8391108 8389672 điểm/0 S 14:07 0:11 ./reservem
doug 11340 0.0 0.0 9040 736 điểm/2 S+ 14:08 0:00 grep --color=autoservem
doug@s19:~$ pmap 11335 | grep anon | grep "8388612K"
00007fae2ce3f000 8388612K rw--- [ anon ]
doug@s19:~$ pmap 11336 | grep anon | grep "8388612K"
00007f20cb627000 8388612K rw--- [ anon ]
doug@s19:~$ ps aux | grep sysbench
doug 11347 96,6 12,8 4227496 4204468 điểm/1 Sl+ 14:08 0:12 sysbench --test=memory --memory-block-size=4G --memory-total-size=512G --num-threads=1 --time =60 lần chạy
doug 11350 0.0 0.0 9040 740 điểm/2 S+ 14:08 0:00 grep --color=auto sysbench
doug@s19:~$ pmap 11347 | grep anon | grep "4195"
00007f37dbe3c000 4195456K rw--- [ anon ]

và:

524288,00 MiB được truyền (12521,74 MiB/giây)

3X:

doug@s19:~$ ps aux | dự trữ grep
doug 11388 100 21.0 8391108 6889064 điểm/0 R 14:12 0:09 ./reservem
doug 11389 103 19.2 8391108 6292368 điểm/0 R 14:12 0:08 ./reservem
doug 11390 100 16.3 8391108 5334328 điểm/0 R 14:12 0:07 ./reservem
doug 11392 0.0 0.0 9040 724 điểm/2 S+ 14:12 0:00 grep --color=autoservem
doug@s19:~$ pmap 11388 | grep anon | grep "8388612K"
00007f2b83d2d000 8388612K rw--- [ anon ]
doug@s19:~$ pmap 11389 | grep anon | grep "8388612K"
00007f2921e0c000 8388612K rw--- [ anon ]
doug@s19:~$ pmap 11390 | grep anon | grep "8388612K"
00007f2a23f2b000 8388612K rw--- [ anon ]
doug@s19:~$ ps aux | grep sysbench
doug 11402 107 12.8 4227496 4204420 điểm/1 Sl+ 14:12 0:07 sysbench --test=memory --memory-block-size=4G --memory-total-size=512G --num-threads=1 --time =60 lần chạy
doug 11405 0.0 0.0 9040 672 điểm/2 S+ 14:12 0:00 grep --color=auto sysbench
doug@s19:~$ pmap 11402 | grep anon | grep "4195"
00007fe64b54b000 4195456K rw--- [ anon ]

và:

524288,00 MiB được truyền (12504,34 MiB/giây)

Để tham khảo, hiệu suất trên hệ thống này phù hợp với kích thước khối bộ nhớ:

Kích thước khối: hiệu suất (MiB/giây):
256 2750.99
512 4937.70
  1K 8216.82
  2K 12290,93
  4K 16334,92
  8K 19498.37
 16K 21663,68
 32K 22514.94
 64K 23372,45
128K 23815.14
256K 23967.98
512K 24126.43
  1 tháng 24226,70
  2 tháng 24279,93
  4T 24310.19
  8T 23632.07
 16 tháng 20622.04
 32T 16149.71
 64M 14206.06
128M 13303.15
256M 12853.12
512M 12720,34
  1G 12584,68
  2G12538.66
  4G12502.66
  8G 12490,63
 16G 12482,25

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.