Chia sẻ RAM qua mạng


48

Đồng nghiệp của tôi đang sử dụng một ứng dụng tiêu tốn nhiều bộ nhớ khiến hệ thống quá chậm. Có thể chia sẻ bộ nhớ với các PC khác qua Internet không?

Hệ thống có 8 GB RAM và ứng dụng tiêu thụ hơn 6 GB.


5
Chạy nó trên một máy chủ mạnh mẽ thông qua Remote Desktop, hoặc VNC, hoặc X11 ??
WGroleau

3
Tốt hơn hết là bạn nên sử dụng ổ đĩa lưu trữ lớn (ổ cứng hoặc SSD) làm bộ đệm, như câu trả lời đã được đề cập.
Firebug


79
Bạn có thể có nhiều may mắn hơn khi tải thêm RAM ...
Mehrdad

4
Các phiên bản hiện đại của cửa sổ cho phép bạn sử dụng thẻ nhớ USB hoặc thẻ SD để cải thiện hiệu suất. Điều đó không thực sự có nghĩa là thiết bị được sử dụng làm RAM mà là thứ gì đó hoạt động giữa RAM và ổ cứng dựa trên đĩa.
Salman A

Câu trả lời:


161

Tôi chỉ xem xét một ứng dụng độc lập chạy trên máy "tiêu chuẩn" mà không có khả năng cài đặt đơn giản ở nơi khác hoặc sử dụng phần cứng hoặc phần mềm chuyên dụng. Các câu trả lời khác (chính xác) giải quyết di chuyển phần mềm hoặc phần cứng chuyên dụng cho tác vụ.

Mọi cách để "chia sẻ RAM" qua mạng sẽ phải chịu những hạn chế của phương tiện mạng đó. Vì ngay cả gigabit Ethernet cũng bị giới hạn ở mức xấp xỉ 100MB / s (megabyte), điều này có nghĩa là tốc độ "RAM" của bạn cũng sẽ bị giới hạn.

100MB / s là một phần rất nhỏ của tốc độ RAM thực sự có trong hệ thống của bạn. Chương trình của bạn sẽ rất chậm và có cảm giác như nó đang chạy trên máy tính từ đầu những năm 90

Ổ đĩa cứng hiện đại, để đọc và ghi tuần tự, nhanh hơn một chút so với điều này. SSD nhanh hơn nhiều lần.

Điều này là bỏ qua các vấn đề về độ trễ sẽ làm cho chương trình của bạn trở nên chậm hơn một lần nữa.

Do sự chậm chạp và các vấn đề kỹ thuật khác liên quan, đây không phải là vấn đề mà bất kỳ ai cũng có thể coi là đáng để cố gắng giải quyết cho các hệ thống "nhà" hoặc "văn phòng". Nó rẻ hơn và hiệu quả hơn để mua thêm RAM nếu cần thiết.

Chỉ cần mua thêm RAM, hoặc thậm chí là SSD cho một tệp trang. Không có cách nào khác để làm điều này mà không đòi hỏi một lượng công việc hoặc phần cứng điên rồ vì lợi ích ít ỏi.


46
Trao đổi / phân trang trên ethernet gigabit có thể có độ trễ thấp hơn so với một trang trên đĩa từ tính cục bộ. ví dụ độ trễ đĩa 10 ms so với thời gian ping dưới 1ms đối với ethernet cục bộ. Nếu máy chủ tập tin giữ pagefile (hoặc thiết bị iSCSI bạn đang trao đổi để) giữ nó nóng trong RAM, bạn có khả năng giành chiến thắng. IDK nếu Windows hỗ trợ phân trang thành tệp mạng. (Tôi khá chắc chắn Linux có, nhưng đây là một câu hỏi của Windows). Ồ, chỉ cần thấy rằng câu hỏi "qua Internet", vì vậy nvm.
Peter Cordes

2
@MarkHu Với điều này đã được hỏi trên Super User, tôi không nghĩ người hỏi có bất kỳ quyền kiểm soát nào đối với mã của phần mềm đang được sử dụng.
oldmud0

2
@PeterCordes Những gì bạn mô tả vẫn là mất mát khi mua thêm RAM hoặc SSD. Và thậm chí chắc chắn hơn như vậy trong Windows. ;)
jpmc26

11
@TomTom cho gia đình và văn phòng "bình thường" sử dụng gigabit vẫn còn khá nhiều những gì bạn nhận được trên máy tính để bàn của mình. Chỉ vì 25G và 100G là phổ biến (hoặc ít nhất là có sẵn) cho cơ sở hạ tầng xương sống không có nghĩa là bạn có khả năng nhìn thấy nó trên máy tính để bàn. Tôi thậm chí không thể tìm thấy thẻ 10GigE trên máy tính để bàn ở bất kỳ nhà cung cấp địa phương nào với chi phí hợp lý, chứ chưa nói đến 25GigE. Thẻ 10GigE có giá gấp khoảng 4 lần so với thẻ nhớ 8GB tại đây. Tôi biết những gì tôi sẽ xem xét nâng cấp hợp lý.
Mokubai

9
"Cảm giác như nó đang chạy trên máy tính từ đầu những năm 90" - thật lạ, máy tính từ những năm 90 cảm thấy nhanh hơn nhiều so với máy tính ngày nay.
Jeremy Visser

73

Chỉ để hoàn thiện: InfiniBand cho phép truy cập trực tiếp vào bộ nhớ của các máy khác.

Tuy nhiên, nó đòi hỏi:

  • Công tắc InfiniBand
  • Một InfiniBand thêm vào thẻ trong mỗi máy
  • Ứng dụng phải được lập trình cụ thể để sử dụng

Nó KHÔNG hoạt động trên một mạng hiện có, nó đòi hỏi một cơ sở hạ tầng hoàn toàn độc lập cho tất cả các nút được kết nối. Nó cũng KHÔNG hoạt động qua Internet


53
Nó cũng chắc chắn đắt hơn rất nhiều so với việc chỉ nhận thêm 8 GiB hoặc hơn RAM :-).
sleske

40
Ồ, chỉ bằng một bậc độ lớn hoặc hơn;)
Gerald Schneider

7
Bạn không cần infiniband, RoCE cũng có thể. Tuy nhiên, điều này không yêu cầu các NIC hỗ trợ RDMA và có thể là một công tắc mới để hỗ trợ các NIC và một ứng dụng được lập trình để sử dụng RDMA.
alex.forencich

7
+1 vì đó là một điều tuyệt vời và đúng đắn nhưng - đối với tình huống này - câu trả lời hoàn toàn vô dụng :-)
daniel.neumann

1
Bạn làm - trừ khi bạn nhận được 25G hoặc 100G đắt hơn. RDMA không giải quyết vấn đề độ trễ.
TomTom

19
Is there any alternative solution?

Điều này phụ thuộc nhiều vào bản chất của dữ liệu.

Bạn có thể chạy 2 máy chủ mysql khác nhau trên 2 máy khác nhau.

Sau đó chia dữ liệu thành 1/2 và viết chương trình để tự động biết máy chủ nào sẽ đến.

Tất nhiên điều này có thể được thu nhỏ cho bất kỳ số lượng máy chủ nào nếu bạn có sẵn chúng.


Tôi đã cân nhắc việc đề cập rằng nói chung cách chúng ta "chia sẻ bộ nhớ" là bằng cách chủ động chuyển ứng dụng sang máy khác và sau đó làm việc với nó từ xa thông qua bất kỳ phương thức nào có sẵn. Nó chắc chắn là một lựa chọn thay thế để mua thêm bộ nhớ, đặc biệt là nếu một máy khác đã có sẵn. +1
Mokubai

1
Giống như một máy tính để bàn từ xa?
Đổi mới

4
Bạn có 2 máy tính chạy hệ điều hành riêng biệt và mỗi máy tính có một bản sao của mysql đang chạy. Vì vậy, máy tính số 1 có thể là 192.168.0.1 và máy tính số 2 192.168.0.2 (hoặc bất cứ thứ gì.) Trên PC chính của bạn, giờ đây bạn có thể đến cả hai IP đó để lấy dữ liệu của mình. Mysql hoặc mariadb thay thế miễn phí của nó cung cấp các thư viện như libmysql để thêm vào chương trình của bạn để nó có quyền truy cập tự nhiên vào mysql. Đây không phải là máy tính để bàn từ xa, máy khách-máy chủ và / hoặc máy khách và nhiều mối quan hệ máy chủ.
gian mạng

15

Có, rất dễ thực hiện (và tôi đã làm điều này, đối với các hệ thống không cần đĩa cần trao đổi), sử dụng giao thức Network Block Device.

Cài đặt nbd-servertrên máy chủ và định cấu hình để tự động tạo các tệp trên mỗi máy chủ.

Đảm bảo các máy khách của bạn có NBD được biên dịch vào các hạt nhân của chúng, sau đó định cấu hình chúng để trao đổi với một thiết bị được gắn NBD. Các nbd-clientgói có thể giúp đỡ.

Xin lỗi nếu những điều trên hơi mơ hồ - Các máy tôi đã thực hiện việc này không thể truy cập được từ đây; Tôi có thể điền vào các chi tiết khi tôi có quyền truy cập vào chúng.

Có một triển khai máy chủ NBD thay thế được gọi là nbdkit; Tôi không biết gì về nó.


Tôi vừa phát hiện ra rằng câu hỏi có thẻ Windows. Tôi không biết gì về Windows - xin lỗi.
Toby Speight

8
+1, hoán đổi GigE trên mạng LAN nên có độ trễ thấp hơn trình điều khiển cứng từ tính cục bộ, nếu máy chủ tệp bạn đang hoán đổi để giữ tệp hoán đổi được lưu trong bộ nhớ cache của RAM. Thời gian tìm kiếm HD ~ 10ms so với thời gian ping LAN là ~ 0,25 ms. Không biết Windows có thể làm bất cứ điều gì tương tự không, ví dụ như với một tệp trang qua Windows File Sharing (SMB) hoặc bất kỳ giao thức nào khác, nhưng có lẽ iSCSI có thể hoạt động. OP đề cập "qua Internet"; đó sẽ không phải là một ý tưởng tốt. Trừ khi thời gian ping của bạn thấp hơn độ trễ truy cập ngẫu nhiên HD, thì đó không phải là một chiến thắng.
Peter Cordes

Tôi không thấy cách này đủ điều kiện là "RAM bổ sung". Không khác gì việc bỏ một số dữ liệu vào một tệp trên đĩa cục bộ, phải không?
ivan_pozdeev

Đối với máy khách Wndows, người ta có thể chia sẻ một thiết bị khối trong Linux thông qua Samba và gắn kết nó dưới dạng đĩa trong Windows với ImDisk (kích thước sẽ cần được chỉ định thủ công).
ivan_pozdeev

Tôi cũng đã làm điều này trong quá khứ trên Linux, mặc dù tôi đã sử dụng triển khai máy khách-máy chủ nbd của riêng mình, nhưng nó hoạt động tốt khi sử dụng thiết bị khối nbd làm phân vùng trao đổi.
hanshenrik

9

Với các chi tiết nhỏ, không quan trọng "Windows 10, máy trạm có RAM 8G B" , thực sự chỉ có một câu trả lời chắc chắn: Mua thêm RAM và chạy ít rác hơn.

Mua một ổ SSD và đặt tệp trang ở đó sẽ là lựa chọn tốt nhất tiếp theo, nhưng thực sự ... mua thêm RAM.

Việc phục vụ tệp trang ("chia sẻ bộ nhớ") qua mạng là điều tất nhiên có thể, nhưng đó là một ý tưởng rất tồi. Mặc dù đúng là có các trường hợp đường biên tồn tại trong đó thời gian truy cập qua mạng sẽ tốt hơn truy cập vào ổ đĩa cục bộ, điều đó không liên quan đến trường hợp sử dụng của bạn, bởi vì bạn cần thời gian truy cập thấp băng thông cao nhất quán cùng một lúc. Hãy nhớ rằng, bạn không lường trước được một hoặc hai lỗi trang, bạn liên tục tráo đổi. Trừ khi bạn sẵn sàng trả một vài ngàn, không có cách nào bạn có thể đến gần với việc mua RAM hoặc SSD.

8 GB gần như không đủ để chạy Windows 10 một ứng dụng ngốn bộ nhớ cùng một lúc. Nó chỉ đủ để chạy Word, Excel và Outlook cùng một lúc. Đó chính xác là "thiết lập công ty nhảm nhí" hoàn toàn không thể sử dụng điển hình mà hàng triệu người phải sống hàng ngày trên máy tính xách tay làm việc của họ. Đầu tư 100-200 tiền vào một mô-đun bộ nhớ khác và nó sẽ khấu hao chi phí trong vòng một tuần (những thứ chỉ mất vài phút và thời gian là tiền - thật không may, điều này thường rất khó để vào đầu quầy đậu địa phương của bạn).

Ngoài ra, nếu bạn sở hữu máy, bạn có thể sử dụng NTLite để cắt giảm crap Windows 10, giảm dung lượng bộ nhớ của nó. Hoặc, bạn có thể tắt 80% các dịch vụ không cần thiết. Có vẻ khó tin, nhưng có thể chạy phiên bản Windows gần đây với RAM dưới 2 GB được sử dụng.

Nhưng thực sự, chỉ cần mua RAM ... nó nhanh hơn và dễ dàng hơn nhiều so với việc dành hàng giờ thời gian quý báu của bạn để cắt giảm crap Windows.


2
Là windows thực sự xấu trên ram? Tôi đang chạy Debian với hệ thống hoàn chỉnh trong ram (không có ổ đĩa vật lý) và có thể có hàng tá tab trình duyệt web mở, văn bản & bảng tính LibreScript, chỉnh sửa ảnh gimp và xem video hoặc nghe nhạc, để lại khoảng 3 hợp đồng miễn phí không gian cho các chương trình hoặc tập tin, tất cả trên tổng số 8GB. Tôi không phải là người thích chiến thắng, nhưng theo lời của bạn, "tổng số thiết lập công ty BS" nghe rất giống cửa sổ ...
Xen2050

1
Vâng, đó là điều không thể tranh cãi - OP có quyền. Lần đầu tiên tôi mua 8gb machi là khoảng năm 2010. Đây là năm 2017. Các ứng dụng sử dụng bộ nhớ 16gb không phải là hiếm trong một số lĩnh vực nhất định (gợi ý: không viết email và không, từ này cũng ổn, hầu hết mọi người không viết tiểu thuyết trên đó). Đây là một khoản đầu tư nhỏ - bộ nhớ 16gb là một bữa trưa kỳ dị hoặc một cái gì đó.
TomTom

7
@ Xen2050 Tôi đã tự hỏi liệu nó có thực sự tệ đến vậy không, vì vậy trên máy Windows 10 6GB của tôi, tôi đã mở Outlook, Excel, Word, Edge, tôi đã có một phiên bản SQL Server rất nhỏ đang chạy, Malwarebytes dường như đang làm gì đó với 170 MB , Tôi đã mở Visual Studio 2017, tôi đã mở Firefox ở đây và tôi sử dụng bộ nhớ 65% và Windows thậm chí không phải bắt đầu sử dụng bộ nhớ nén. Vì vậy, IME, Windows 10 chạy tốt với ít hơn 8GB RAM và, dù sao, việc không thích rõ ràng của Damon đối với Windows là không liên quan đến câu trả lời.
Andrew Morton

1
@Damon: Nhưng trừ khi bạn đã thực hiện một số phân tích về việc tiêu thụ thêm RAM, thì không có cơ sở nào để đổ lỗi cho "crap Windows" so với "crap hậu mãi được cài đặt bởi chủ nhân". Vì nhiều người (bao gồm cả tôi) đã thực hiện các phép tính chiếm nhiều bộ nhớ, trên Windows 7, Windows 8.x và Windows 10, không có vấn đề như vậy, nên nó gợi ý (nhưng không chứng minh) rằng thủ phạm không phải là một phần của chính Windows.
Ben Voigt

6

Một cách khác đơn giản là chạy ứng dụng trên PC từ xa , có thể dưới tài khoản người dùng chuyên dụng và chỉ cần điều khiển nó thông qua RDP, VNC hoặc bất cứ điều gì thuận tiện.


Nếu PC từ xa có đủ ram ...
LateralTerminal 23/2/18

1
@LonymousTerminal Điều đó ngụ ý.
Clonkex

2
Vâng, hợp nhất RAM của hai máy qua mạng ... mạng sẽ không hoạt động, không dành cho các ứng dụng thông thường (loại hình vuông, màu xám với các nút và menu).
rackandboneman

6

Một tùy chọn khác là tạm thời triển khai ứng dụng trong môi trường mà ram có thể được tăng hoặc giảm dễ dàng.

Tôi sẽ xem xét một ví dụ Amazon AWS, có thể thay đổi kích thước với một lần khởi động lại.

IE một ví dụ nhỏ như C5.large có 4GB ram và 2 lõi và có giá 2,04 USD một ngày cho linux, hoặc 4,26 USD mỗi ngày cho cài đặt windows. Dung lượng đĩa EBS là một chi phí phụ và quy mô tuyến tính với GB được phân bổ.

Bạn có thể thiết lập hệ thống của mình ở kích thước nhỏ hơn này và sau đó khi bạn muốn phát ra tiếng ồn đầy đủ, hãy dừng hệ thống, thay đổi kích thước cá thể và chạy phần mềm.

  • m5.4xlarge là ram 64 GB và 16 lõi, với giá $ 18,44 USD / ngày hoặc $ 36,10 USD / ngày cho cửa sổ.
  • r4.8xlarge là 244 GB và 32 lõi, với giá $ 51,07 USD / ngày hoặc $ 86,40 USD / ngày với cửa sổ.
  • x1.32xlarge là 1952 GB và 128 lõi, với giá $ 320,12 USD / ngày hoặc $ 461,43 / ngày với cửa sổ

Hoặc lớn nhất ...

  • x1e.32xlarge là 3904 GB và 128 lõi, với giá 640,52 USD / ngày hoặc 781,82 USD / ngày có cửa sổ. Nếu đồng nghiệp của bạn cần nhiều hơn thế thì vấn đề cần viết lại theo cách tối ưu hơn.

https://www.ec2instances.info/ sẽ giúp bạn chọn một kích thước phù hợp. Lưu ý một số địa điểm có giá cao hơn những nơi khác. Singapore và Bắc California đắt đỏ. Tuy nhiên, VM của bạn không mất gì khi nó không chạy, trừ chi phí lưu trữ đĩa.

Nhược điểm là nếu bạn cần bộ nhớ này trong một thời gian dài, mua thời gian VM là một cách tốn kém để làm điều đó. Tuy nhiên, kế toán dường như đôi khi thích chi phí hoạt động như cho thuê, hơn chi phí vốn như nâng cấp.


1
Tôi nhận ra rằng câu trả lời này không giải quyết "truy cập ram qua mạng" theo yêu cầu của OP. Nó giống như truy cập một máy chủ từ xa có nhiều ram hơn. Tuy nhiên, biết cách ngân sách hoạt động ở một số nơi, đây có thể là một giải pháp hợp lệ để hoàn thành công việc một cách có thể tài trợ.
Criggie

4

Như những người khác đã nói về mặt kỹ thuật là có thể nhưng không đáng.

Tuy nhiên, nếu bạn muốn tăng tốc độ sử dụng máy tính của mình, có thể bên ngoài một số ứng dụng của bạn đến một máy chủ từ xa.

Điều này chủ yếu sẽ phụ thuộc vào những gì bạn đang làm việc và ứng dụng bạn sử dụng. Nếu bạn đang chạy các chương trình đòi hỏi nhiều thời gian xử lý cho một đầu ra dữ liệu nhỏ, bạn có thể làm cho chúng chạy trên một máy chủ khác với máy tính của bạn để tiết kiệm thời gian và nguồn tài nguyên trong khi bạn làm việc trên một thứ khác.

Ví dụ tôi có trong đầu là một máy chủ kiểm tra mã của tôi mỗi khi tôi sửa đổi. Ý tưởng với giải pháp như vậy là nó được giới hạn trong các trường hợp sử dụng cụ thể.


4

Yêu cầu IT mua thêm RAM cho PC của bạn và thể hiện nhu cầu sử dụng ảnh chụp màn hình sử dụng ứng dụng trong Trình quản lý tác vụ.


4
Giải pháp thực tế ... thậm chí yêu cầu IT tạm thời trao đổi thêm ram từ các hệ thống khác phải là câu trả lời "miễn phí".
Xen2050

2
@ Xen2050 Trong khi đó, đồng nghiệp của bạn đang khóc vì hệ thống của anh ta không còn khởi động.
Willtech

3
@Willtech Việc CNTT duy trì các phụ tùng của tất cả các bộ phận và phụ tùng của toàn bộ hệ thống là điều bình thường và phù hợp. Thời gian chết là chi phí thực sự.
Con tin Christopher

3

Có một giải pháp thương mại cho việc này, thông qua một công ty tên là Kove ( http://kove.net/). Nó đòi hỏi cơ sở hạ tầng Infiniband để hoạt động trên "bảng nối đa năng" (ethernet hoạt động bình thường), mặc dù các tùy chọn khác như RoCE đôi khi có thể được cung cấp, tùy thuộc vào chi tiết cụ thể. Chúng cung cấp một số giao diện trong suốt để cho phép tích hợp thay đổi mã bằng 0 và API cho bỏ qua kernel với quyền truy cập CPU trực tiếp hơn (nghĩa là tránh chi phí nhân). Về hiệu suất, nó phụ thuộc vào ứng dụng của bạn. Nếu bạn bị ràng buộc CPU, thì tác động có thể là tối thiểu (có thể gây ngạc nhiên). Nếu bạn là băng thông bộ nhớ bị ràng buộc trên máy chủ cục bộ, chúng sẽ cung cấp cho bạn bộ nhớ lớn hơn, nhưng bạn sẽ bị tắc nghẽn bởi nút cổ chai đã tồn tại. Trong trường hợp này, có lợi cho khối lượng công việc để có bộ nhớ lớn hơn có thể được đặt trong một hộp không, và không hết RAM? Chúng tôi đã thấy (rất) kết quả tốt với các thư viện học máy ảo hóa và python. Các ứng dụng HPC cao cấp có xu hướng tệ hơn, nhưng chúng tôi đã sử dụng API C và quản lý để giữ hiệu suất đạt mức chấp nhận được trong khi giảm số lượng nút (các nút ở đó cho RAM, không phải chu kỳ CPU), đây là điểm cộng so với MPI . Cho dù đây là một giải pháp tốt cho đồng nghiệp của bạn rất khó để nói, nhưng nó là một lựa chọn bạn có thể xem xét. Mong rằng sẽ giúp. Để rõ ràng, tôi không làm việc cho Kove và không có động lực tài chính, nhưng tôi đã cộng tác với họ trong một số năm và nghĩ rằng công nghệ này có khả năng tác động đáng kể đến cách thức thực hiện điện toán nhất định. nhưng chúng tôi đã sử dụng API C và quản lý để giữ hiệu suất đạt mức chấp nhận được trong khi giảm số lượng nút (các nút ở đó cho RAM, không phải chu kỳ CPU), đây là điểm cộng so với MPI. Cho dù đây là một giải pháp tốt cho đồng nghiệp của bạn rất khó để nói, nhưng nó là một lựa chọn bạn có thể xem xét. Mong rằng sẽ giúp. Để rõ ràng, tôi không làm việc cho Kove và không có động lực tài chính, nhưng tôi đã cộng tác với họ trong một số năm và nghĩ rằng công nghệ này có khả năng tác động đáng kể đến cách thức thực hiện điện toán nhất định. nhưng chúng tôi đã sử dụng API C và quản lý để giữ hiệu suất đạt mức chấp nhận được trong khi giảm số lượng nút (các nút ở đó cho RAM, không phải chu kỳ CPU), đây là điểm cộng so với MPI. Cho dù đây là một giải pháp tốt cho đồng nghiệp của bạn rất khó để nói, nhưng nó là một lựa chọn bạn có thể xem xét. Mong rằng sẽ giúp. Để rõ ràng, tôi không làm việc cho Kove và không có động lực tài chính, nhưng tôi đã cộng tác với họ trong một số năm và nghĩ rằng công nghệ này có khả năng tác động đáng kể đến cách thức thực hiện điện toán nhất định.


Bạn có thể mua bộ nhớ bao nhiêu bộ nhớ cho thiết lập vô cực?
joojaa

Vâng, vấn đề chính ở đây là vấn đề nhỏ mà anh ấy nói về việc chỉ có bộ nhớ 8gb và cần 16. Đây không phải là "Làm thế nào để tôi sử dụng ram từ xa" mà là "tại sao tôi lại sử dụng một hệ thống có thông số kỹ thuật 10 năm" .
TomTom

@jooja Chúng tôi có 6TB. Dựa trên những gì chúng ta đã thấy, chúng ta chưa thấy giới hạn. Bạn có thể tiếp tục thêm các thiết bị RAM từ xa. Nó dường như quy mô khá tuyến tính, vì vậy nó là một vấn đề kỹ thuật / chi phí. Chúng tôi đã thiết kế một hệ thống 1PB một lần trên giấy, nhưng rõ ràng không thể kiểm tra nó.
Bill

@TomTom Tôi không thấy nhận xét về 8GB, nhưng vâng, rõ ràng nếu chúng ta đang nói 8GB so với 16GB RAM, một vài $ K cho một máy mới sẽ giải quyết vấn đề.
Bill

Heck, với một vài trăm đô la, bạn có thể có thể nâng cấp RAM lên 32GB, trừ khi bo mạch chủ cũ và vô cùng hạn chế.
lông mịn

2

Một quan điểm khác - có thể vấn đề không phải là giới hạn đối với tài nguyên hệ thống, nhưng ứng dụng lãng phí mà bạn của bạn đang viết. 6 GB RAM là rất nhiều bộ nhớ.

Chỉ vì rất nhiều các ứng dụng khác đang quá cồng kềnh , không nhất thiết có nghĩa là ứng dụng bạn của bạn cần phải được một trong số họ. Sử dụng các phương pháp lập trình khác nhau có thể làm giảm yêu cầu bộ nhớ trong khi cải thiện tốc độ. Ví dụ: nếu ứng dụng tải toàn bộ dữ liệu vào bộ nhớ và sau đó hoạt động trên đó sẽ lãng phí hơn nhiều so với việc lưu trữ dữ liệu trong cơ sở dữ liệu SQL (cục bộ hoặc từ xa) với một vài chỉ mục được chọn và truy cập vào đó. Làm cho nó xử lý từng khối dữ liệu nếu có thể, thay vì tải tất cả dữ liệu cùng một lúc. Cấu trúc trong bộ nhớ cũng có thể lãng phí. Bộ nhớ trống khi bạn hoàn thành nó. Không tải vào RAM những gì bạn có thể lập bản đồ bộ nhớ thay thế. Và hàng trăm lời khuyên khác ...

Tuy nhiên, nếu ứng dụng thực sự cần nhiều bộ nhớ hơn cần được lưu trữ trên các máy tính khác, nó có thể được sửa đổi để sử dụng memcached và muốn lưu trữ nó ở đó. Điểm thưởng vì nó sẽ mở rộng quy mô tốt hơn trong tương lai.


5
Bộ nhớ 6gb không phải là quá nhiều tùy thuộc vào ứng dụng. Ngay cả người dùng cuối cũng thực hiện chỉnh sửa ảnh (photoshop yêu thích RAM và máy ảnh cao cấp chụp ảnh 64 megapixel), Chỉnh sửa video (RẤT NHIỀU), sau đó có công việc toán học. Heck, thậm chí excel sẽ sẵn sàng sử dụng một vài GB. Không phải ai cũng viết email, sử dụng twitter và những thứ khác.
TomTom

@TomTom nếu bạn cần xử lý megapixel cao, bạn sẽ có yêu cầu bộ nhớ cao (theo bản chất của yêu cầu). Nhưng trừ khi bạn đang thực hiện ghép gen DNA trong trang tính Excel của mình và nó vẫn đang sử dụng một vài GB RAM, thì đó chính xác là kiểu lập trình phình to và cẩu thả mà tôi đang nói đến. Bạn biết đấy, như, ngân sách nhà của bạn đã vui vẻ được xử lý nhanh (hoặc nhanh hơn) trong Lotus 1-2-3 vài thập kỷ trước trên các máy có 3 đơn hàng RAM ít hơn (và bộ xử lý chậm hơn ít nhất hàng trăm lần) so với Excel của bạn của ngày hôm nay.
Matija Nalis

1
Whow, những gì một anser không biết gì. Tôi chỉ có thể giả sử bạn có rất ít kinh nghiệm với những gì mọi người sử dụng excel cho. Khi Microsoft tạo phiên bản Office 64 bit, họ nói rằng có rất ít sử dụng cho nó - NGOẠI TRỪ cho Access và Excel vì có một số người (chủ yếu là người quản lý) đang chạy phân tích lớn một cách thô bạo thông qua Excel, sử dụng nhiều gigabyte bộ nhớ. Tính linh hoạt của Excel và khả năng tiếp cận đối với những người không lập trình khiến công cụ của họ trở thành công cụ (các nhà thống kê có xu hướng được đào tạo sử dụng R). Cá nhân tôi đã thấy 200 tập tin excel của một số người tài chính.
TomTom

Nếu ngân sách nhà của bạn mất nhiều thời gian để tính toán trong Excel, bạn sẽ giàu hơn tôi rất nhiều. Câu hỏi thú vị trên Excel so với 1-2-3 - vòng calc cốt lõi có thể nhanh hơn trong 1-2-3 vì nó không làm được nhiều như vậy. Nhưng trên máy đa lõi, Excel sẽ dễ dàng đánh bại 1-2-3. Và rõ ràng các tấm ghép bộ gen khổng lồ có thể sẽ không mở trong 1-2-3 vì kích thước tấm. Vì lợi ích của tính minh bạch, tôi phải thừa nhận rằng trước đây tôi đã làm việc trên Excel trong nhóm calc cốt lõi, vì vậy tôi có thể bị thiên vị ...
Chris Rae

1

Vì vậy, người dùng đã yêu cầu CÁCH chia sẻ bộ nhớ qua mạng. Không nếu đó là một ý tưởng tốt. Vì vậy, đây thực sự là cách bạn có thể làm điều đó.

Tôi không nói rằng đây là một ý tưởng tốt, hoặc sẽ được thực hiện, nhưng nó sẽ hoạt động.

  • Máy tính 1 = "chính" - nơi mã được thực thi
  • Máy tính 2 = "con" - người cho bộ nhớ

Tôi cho rằng đây không phải là Windows Server nơi bạn có thể tạo điểm gắn kết iSCSI.

Máy tính 1 bước:

  1. Tải xuống ramdisk miễn phí của Dataram: http://memory.dataram.com/products-and-service/software/ramdisk
  2. Tạo một ramdisk và định dạng nó bằng NTFS - hướng dẫn có sẵn trên trang web của họ
  3. Trong Trình quản lý đĩa, tạo tệp VHD trên ramdisk được định dạng bằng NTFS
  4. Chia sẻ thư mục gốc Ramdisk trên mạng với SMB - Nhấp chuột phải vào ổ đĩa, chia sẻ, chia sẻ thư mục này

Máy tính 2 bước:

  1. Ánh xạ ổ đĩa được chia sẻ từ cild lên Drive
  2. Gắn kết VHD mà bạn đã tạo ở bước 3 ở trên trong Trình quản lý đĩa
  3. Di chuyển vị trí tệp trang cục bộ sang VHD được gắn kết thông qua Di chuyển tệp trang Windows
  4. Xóa mọi mục nhập tệp trang khác.

Làm xong!

Hãy cẩn thận - bạn có thể bỏ qua những điều vô nghĩa VHD nếu Windows cho phép bạn di chuyển tệp trang sang chia sẻ mạng. Không có nhiều ví dụ về điều này trực tuyến (vì lý do rõ ràng).

Sự mất ổn định hệ thống hoàn toàn có thể xảy ra, hoặc một cái gì đó khác hoàn toàn. Không ai thực sự biết điều gì sẽ xảy ra.


0

Như bạn đề cập đến "RAM" để chia sẻ qua mạng không chỉ là "bộ nhớ" dưới bất kỳ hình thức nào, câu trả lời cuối cùng sẽ là về mặt lý thuyết là có, thực tế là không.

Trong khi các loại bộ nhớ khác như lưu trữ và dữ liệu tạm thời khác thường xuyên được chia sẻ qua mạng vì nhiều mục đích và lý do khác nhau. Theo cách tương tự, RAM về mặt kỹ thuật có thể được chia sẻ qua mạng nếu cần. Nhưng hiệu suất và chi phí sẽ quá cao để có thể khả thi trong thế giới thực.

RAM hoặc bộ nhớ truy cập ngẫu nhiên được sử dụng bởi một hệ điều hành làm không gian làm việc nên rất nhiều thao tác đọc / ghi được thực hiện trên nó. Trên hệ thống trung bình, dung lượng tốc độ dữ liệu với RAM là cao nhất so với các phần khác. Nếu bạn đặt RAM trên mạng, bạn cần có khả năng truyền dữ liệu tốc độ rất cao và chi phí sẽ rất cao ngay cả khi có thể để đạt được về mặt kỹ thuật. Với một phần chi phí nhỏ để nâng cấp tốc độ mạng, bạn sẽ có RAM cho máy của mình cục bộ.


0

Các ứng dụng thường chạy trong bộ nhớ ảo, do đó, yêu cầu bộ nhớ ảo của chúng có thể vượt quá bộ nhớ vật lý có sẵn của hệ thống mà không có hậu quả nào khác ngoài hiệu năng. Hệ điều hành sẽ chỉ đơn giản là trang bộ nhớ ảo ra đĩa để giải phóng bộ nhớ vật lý khi cần thiết trong bất kỳ thời điểm nào để sử dụng hoạt động. Điều này thường chỉ hoạt động tốt đối với các ứng dụng có địa phương hợp lý (hoạt động tại bất kỳ thời điểm nào được tập trung phần nào vào các khu vực hạn chế trong không gian bộ nhớ ảo của ứng dụng). Nếu một ứng dụng có địa phương kém (liên tục tham chiếu bộ nhớ trên toàn bộ không gian ảo của nó), ứng dụng sẽ hoạt động kém trừ khi tất cả bộ nhớ ảo của nó có thể được cung cấp trong bộ nhớ vật lý (tất cả bộ nhớ ảo đều nằm trong bộ nhớ).

Vì vậy, có một vài khả năng ở đây:

  • Nếu ứng dụng chỉ đơn giản là có dấu chân lớn nhưng địa phương tốt, bạn sẽ có thể chạy nó trên máy tính bạn có sẵn; hiệu suất có thể được chấp nhận, có thể hoặc không thể cải thiện đáng kể trên máy tính có nhiều bộ nhớ hơn.
  • Nếu nó có địa phương kém, bạn có thể thấy rằng nó sẽ chạy trên máy tính có sẵn, chỉ là rất kém. (Đây có vẻ là trường hợp dành cho bạn)
  • Nâng cấp ổ đĩa từ (giả định) lên ổ đĩa trạng thái rắn (chúng nhanh hơn đáng kể)
  • Thêm bộ nhớ vào máy tính bạn có sẵn (nếu có thể)
  • Bạn có thể cần tìm một máy tính có nhiều bộ nhớ hơn và chạy nó trên đó.
  • Cải thiện ứng dụng để nó có dấu chân ảo nhỏ hơn hoặc địa phương tốt hơn (nếu bạn đang hoặc đang liên kết với tác giả của ứng dụng).

Ý tưởng sử dụng bộ nhớ trên một máy tính từ xa về cơ bản là tạo ra một tệp hoán trang được nối mạng . Về lý thuyết, nó có thể hoạt động, nhưng trên thực tế, hiệu năng sẽ tốt hơn nhiều nếu tệp hoán trang là cục bộ trên máy tính (ổ cứng của chính nó) vì băng thông mạng và độ trễ. Sẽ không có vấn đề gì nếu hệ thống từ xa đang lưu trữ tệp hoán trang trong bộ nhớ hoặc trên đĩa của nó, nút cổ chai (giới hạn đáng kể nhất về hiệu suất) sẽ là mạng. Điều này sẽ đặc biệt đúng qua internet, nhưng cũng sẽ đúng ngay cả khi máy tính từ xa nằm trên cùng một mạng LAN.


Windows sẽ không cho phép một trang trên một ổ đĩa mạng, vì vậy ngay cả khi nó đủ nhanh, nó vẫn không thể được thực hiện.
Jamie Hanrahan

@JamieHanrahan Rõ ràng, bạn có thể nếu bạn thay đổi cài đặt trực tiếp trong sổ đăng ký. Tôi tự hỏi nếu họ loại trừ một số chi tiết mặc dù các ổ đĩa mạng là cho mỗi người dùng trong Windows. Tôi cũng nghi ngờ điều này sẽ bị hỏng sau khi khởi động lại.
ivan_pozdeev

1
Tuy nhiên, đó là một ý tưởng tồi tệ, đó là lý do tại sao UI ngăn chặn nó. Kết nối mạng không đủ tin cậy để phân trang. Hãy nhớ rằng nhiều dữ liệu kernel (pool paged) có thể được phân trang. Nếu không truy cập được, ngay cả trong một thời gian rất ngắn, HĐH sẽ bị sập.
Jamie Hanrahan

0

Điều này thực sự phụ thuộc vào loại ứng dụng và ram được sử dụng.

Ví dụ, nhiều ứng dụng web có thể sử dụng RAM qua mạng bằng cách kết nối với memcachedmáy chủ. Điều này sẽ cho phép lưu trữ dữ liệu bộ nhớ cache (và các dữ liệu khác cần truy cập nhanh) trên một máy tính khác có nhiều RAM.

Tất nhiên đây là ứng dụng cụ thể và cần một ứng dụng có thể sử dụng memcached. Điều này sẽ không giúp bạn mở phiên bản thứ hai của chùng vì trình duyệt không hỗ trợ sử dụng phụ trợ bộ đệm như vậy.


-1

Thay vì chia sẻ RAM, chỉ cần mã ứng dụng đó để tạo tệp .exe con , tệp này sẽ được chạy trên PC Mạng và thực hiện tương tự trên máy tính đó.

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.