네트워크를 통한 RAM 공유


48

동료가 시스템을 너무 느리게 만드는 많은 메모리를 소비하는 응용 프로그램을 사용하고 있습니다. 인터넷을 통해 다른 PC와 메모리를 공유 할 수 있습니까?

시스템에는 8GB의 RAM이 있으며 응용 프로그램은 6GB 이상을 소비합니다.


5
원격 데스크톱 또는 VNC 또는 X11을 통해 고성능 서버에서 실행 하시겠습니까 ??
WGroleau

3
이미 언급 한 답변과 같이 대용량 스토리지 드라이브 (HDD 또는 SSD)를 캐시로 사용하는 것이 좋습니다.
Firebug


79
당신은 더 많은 RAM을 다운로드 더 운이있을 수 있습니다 ...
Mehrdad

4
최신 버전의 창에서는 성능 향상을 위해 USB 스틱 또는 SD 카드를 사용할 수 있습니다. 실제로 장치가 RAM으로 사용되는 것이 아니라 RAM과 플래터 기반 하드 드라이브 사이에서 작동하는 것을 의미합니다.
살만 A

답변:


161

다른 곳에 설치하거나 전문 하드웨어 또는 소프트웨어를 사용할 수없는 "표준"시스템에서 실행되는 독립형 응용 프로그램 만 고려했습니다. 다른 답변은 소프트웨어 마이그레이션 또는 작업 전용 하드웨어를 올바르게 해결합니다.

네트워크를 통해 "RAM 공유"방법은 해당 네트워크 매체의 제한을받습니다. 기가비트 이더넷조차도 약 100MB / s (메가 바이트)로 제한되므로 "RAM"속도도 제한됩니다.

100MB / s는 실제로 시스템에있는 RAM 속도의 작은 부분입니다. 프로그램은 고통스럽게 느리고 90 년대 초반부터 컴퓨터에서 실행되는 것처럼 느껴집니다.

최신 하드 드라이브는 순차 읽기 및 쓰기를 위해 이보다 약간 빠릅니다. SSD는 몇 배 더 빠릅니다.

이것은 대기 시간 문제를 무시하여 프로그램의 크기를 다시 느리게 만듭니다.

속도 저하 및 기타 기술적 문제로 인해 "가정"또는 "사무실"시스템을 해결하려고 시도 할 가치가있는 사람은 아닙니다. 필요한 경우 더 많은 RAM을 구입하는 것이 더 저렴하고 효과적입니다.

RAM을 추가하거나 페이지 파일 용 SSD를 구입하십시오. 이 작업을 수행하는 다른 방법은 별다른 이점없이 엄청난 양의 작업이나 하드웨어가 필요하지 않습니다.


46
기가비트 이더넷을 통한 스와핑 / 페이징은 로컬 자기 디스크 의 페이지 파일보다 대기 시간이 짧을 수 있습니다 . 예 : 10ms 디스크 대기 시간 대 로컬 이더넷의 경우 1ms 핑 시간 미만 페이지 파일을 보유하고있는 파일 서버 (또는 교환하려는 iSCSI 장치) RAM 에서 뜨겁게 유지 하면 잠재적으로 승리 할 수 ​​있습니다. Windows가 네트워크 파일로의 페이징을 지원하는 경우 IDK. (리눅스는 확실하지만 이것은 Windows 질문입니다). 오, 방금 질문에 "인터넷을 통해"라고 말하는 것을 보았으므로 nvm.
Peter Cordes

2
@MarkHu 슈퍼 유저에게 물어봤을 때, asker가 사용되는 소프트웨어의 코드를 제어 할 수 있다고 생각하지 않습니다.
oldmud0

2
@PeterCordes 더 많은 RAM이나 SSD를 구매하면 손실이 발생합니다. 그리고 더 확실하게 Windows에서도 마찬가지입니다. ;)
jpmc26

11
가정 및 "일반적인"사무실 사용을위한 @TomTom 기가비트는 여전히 데스크탑 컴퓨터에서 얻는 것입니다. 백본 인프라 스트럭처에 25G 및 100G가 공통적이거나 최소한 가용성 이 있다고해서 데스크탑에서이를 볼 수있는 것은 아닙니다. 25GigE는 물론 합리적인 가격으로 현지 공급 업체에서 데스크탑 10GigE 카드를 찾을 수 없습니다 . 10GigE 카드는 여기에서 8GB 메모리 스틱 비용의 약 4 배입니다. 어느 쪽이 합리적인 업그레이드인지 고려합니다.
Mokubai

9
"90 년대 초반 컴퓨터에서 실행되는 것처럼 느껴집니다."이상하게도 90 년대 컴퓨터는 오늘날 컴퓨터보다 훨씬 느리게 느껴졌습니다.
Jeremy Visser

73

완전성을 위해 InfiniBand 는 다른 머신의 메모리에 직접 액세스 할 수 있습니다.

그러나 다음이 필요합니다.

  • InfiniBand 스위치
  • 각 컴퓨터에서 InfiniBand 애드온 카드
  • 이것을 사용하려면 응용 프로그램을 특별히 프로그래밍해야합니다

기존 네트워크에서는 작동하지 않으며 연결된 모든 노드에 대해 완전히 독립적 인 인프라가 필요합니다. 또한 인터넷을 통해 작동하지 않습니다


53
또한 다른 8GiB 정도의 RAM :-)을 얻는 것보다 훨씬 비쌉니다.
sleske

40
아, 단지 한 자릿수 정도만;)
Gerald Schneider

7
무한대가 필요하지 않으며 RoCE도 가능합니다. 그러나 여기에는 RDMA를 지원하는 NIC와 NIC를 지원하는 새 스위치 및 RDMA를 사용하도록 프로그래밍 된 응용 프로그램이 필요합니다.
alex.forencich

7
+1 그것은 위대하고 정확하기 때문에-이 상황에서는 완전히 쓸모없는 답변 :-)
daniel.neumann

1
당신은-더 비싼 25G 또는 100G를 얻지 않는 한. RDMA는 대기 시간 문제를 해결하지 않습니다.
TomTom

19
Is there any alternative solution?

이것은 데이터의 특성에 크게 의존합니다.

2 개의 다른 머신에서 2 개의 다른 mysql 서버를 실행할 수 있습니다.

그런 다음 데이터를 1/2로 나누고 프로그램을 작성하여 어느 서버로 갈지 자동으로 파악하십시오.

물론 사용 가능한 서버 수에 관계없이이 서버를 확장 할 수 있습니다.


나는 일반적으로 우리가 "메모리를 공유"하는 방법은 응용 프로그램을 다른 컴퓨터로 적극적으로 이동시킨 다음 사용 가능한 방법을 통해 원격으로 작업하는 것입니다. 특히 다른 시스템을 이미 사용할 수있는 경우 더 많은 메모리를 구매할 수 있습니다. +1
Mokubai

1
원격 데스크톱처럼?
Innov

4
별도의 OS를 실행하는 두 대의 컴퓨터가 있으며 각 컴퓨터에는 mysql 복사본이 실행 중입니다. 따라서 컴퓨터 # 1은 192.168.0.1이고 컴퓨터 # 2는 192.168.0.2 (또는 무엇이든) 일 수 있습니다. 주 PC에서 이제 두 IP 모두에서 데이터를 검색 할 수 있습니다. Mysql 또는 무료 대체품 mariadb는 libmysql과 같은 라이브러리를 제공하여 프로그램에 추가하므로 mysql에 기본 액세스 할 수 있습니다. 이것은 원격 데스크톱, 클라이언트 서버 및 / 또는 클라이언트 및 다중 서버 관계가 아닙니다.
cybernard

15

예, Network Block Device 프로토콜을 사용하면 합리적으로 쉽습니다 (스왑이 필요한 디스크가없는 시스템의 경우).

nbd-server서버 시스템에 설치 하고 호스트 별 파일을 자동 작성하도록 구성하십시오.

클라이언트 시스템이 커널로 NBD를 컴파일했는지 확인한 다음 NBD 마운트 장치로 스왑하도록 구성하십시오. nbd-client패키지가 도움 이 될 수 있습니다.

위의 내용이 약간 모호한 경우 죄송합니다.이 작업을 수행 한 컴퓨터는 여기에서 연결할 수 없습니다. 세부 정보에 액세스 할 때 세부 정보를 입력 할 수 있습니다.

대체 NBD 서버 구현이 있습니다 nbdkit. 나는 그것에 대해 아무것도 모른다.


방금 질문에 Windows 태그가 있음을 발견했습니다. 나는 Windows에 대해 아무것도 모른다. 죄송합니다.
Toby Speight

8
당신이 교환하고있는 파일 서버에 캐시 스왑 파일 유지하는 경우 LAN에서의 GigE를 통해 교환 한은 로컬 자기 하드 드라이버보다 낮은 대기 시간이 있어야한다 그것의 RAM을. ~ 10ms의 HD 탐색 시간과 ~ 0.25ms의 LAN 핑 시간 Windows가 SMB (Windows 파일 공유) 또는 다른 프로토콜을 통해 페이지 파일을 사용하여 유사한 작업을 수행 할 수 있는지는 모르지만 iSCSI는 작동 할 수 있습니다. OP는 "인터넷을 통해"언급합니다. 좋은 생각이 아닙니다. 핑 시간이 HD 랜덤 액세스 대기 시간보다 낮지 않으면 승리하지 않습니다.
Peter Cordes 2019

이것이 어떻게 "추가 RAM"의 자격이되는지 모르겠습니다. 로컬 디스크의 파일에 일부 데이터를 덤프하는 것과 다르지 않습니다.
ivan_pozdeev

Wndows 클라이언트의 경우 Samba를 통해 Linux에서 블록 장치를 공유하고 ImDisk를 사용하여 Windows에서 디스크로 마운트 할 수 있습니다 (크기는 수동으로 지정해야 함).
ivan_pozdeev

나는 또한 이전에 Linux 에서이 작업을 수행했지만 내 자신의 nbd 서버 클라이언트 구현을 사용했지만 nbd 블록 장치를 스왑 파티션으로 사용하는 것이 좋습니다.
hanshenrik

9

작고 중요하지 않은 세부 사항 인 "Windows 10, 워크 스테이션에는 8G B RAM이 있습니다" 라는 사실을 감안할 때 실제로 더 많은 RAM을 구입하고 쓰레기를 줄이십시오.

SSD를 구입하고 페이지 파일을 넣으면 차선책이 될 수 있지만 실제로는 더 많은 RAM을 구입할 수 있습니다.

네트워크를 통해 페이지 파일 ( "공유 메모리")을 제공하는 것은 물론 가능하지만 매우 나쁜 생각입니다. 네트워크를 통한 액세스 시간이 로컬 드라이브에 액세스하는 것보다 낫다는 경계 사례가있는 것은 사실이지만, 일관된 낮은 액세스 시간 높은 대역폭이 동시에 필요하기 때문에 사용 사례와 관련이 없습니다 . 하나 또는 두 개의 페이지 결함을 예상하지 않고 지속적으로 교체하고 있음을 기억하십시오. 몇 천 달러를 기꺼이 지불하지 않으면 RAM이나 SSD를 구매할 수있는 곳이 없습니다.

8GB는 Windows 10 메모리 부족 응용 프로그램을 동시에 실행하기에 충분하지 않습니다 . Word, Excel 및 Outlook을 동시에 실행하기에는 충분하지 않습니다. 그것은 수백만의 사람들이 매일 자신의 업무용 랩톱에서 살아야하는 완전히 사용 불가능한 "총 헛소리 회사 설정" 입니다. 다른 메모리 모듈에 100-200 통화를 투자하면 일주일 이내에 비용을 절감 할 수 있습니다 (현재 몇 분이 걸리고 시간이 걸리는 데 시간이 오래 걸리는 경우도 있습니다)-불행히도 종종 현지 콩 카운터에 들어가기가 어렵습니다.

또는 컴퓨터를 소유 한 경우 NTLite를 사용하여 Windows 10 쓰레기를 줄이고 메모리 사용 공간을 줄일 수 있습니다. 또는 대부분 불필요한 서비스의 80 %를 끌 수도 있습니다. 믿을 수없는 것처럼 보이지만 2GB 미만의 RAM을 사용하여 최신 버전의 Windows를 실행할 수 있습니다 .

그러나 실제로 RAM 만 구매 하면 Windows 쓰레기를 줄이는 데 귀중한 시간을 보내는 것보다 훨씬 빠르고 쉽습니다.


2
램에서 창문이 그렇게 나쁘습니까? 나는 완전한 시스템으로 램 (물리적 드라이브 없음)으로 데비안을 실행하고 있으며 수십 개의 개방형 웹 브라우저 탭, LibreOffice 텍스트 및 스프레드 시트, 김프 사진 편집, 비디오 시청 또는 음악 감상이 가능하며 약 3 기가의 무료 공간이 남아 있습니다. 총 8GB의 프로그램 또는 파일을위한 공간. 나는 승리를 싫어하는 사람은 아니지만 "총 BS 기업 설정" 은 창 자체와 매우 흡사합니다.
Xen2050

1
글쎄요, 그것은 논쟁의 여지가 있습니다-OP가 옳습니다. 16GB 메모리를 사용하는 응용 프로그램은 특정 필드에서 드문 일이 아닙니다 (힌트 : 이메일을 작성하지 않고 단어도 괜찮습니다. 대부분의 사람들은 소설을 쓰지 않습니다). 이것은 작은 투자입니다-16GB 메모리는 놀라운 점심입니다.
TomTom

7
@ Xen2050 정말 나쁜지 궁금해서 6GB Windows 10 컴퓨터에서 Outlook, Excel, Word, Edge를 열었습니다 .SQL Server 인스턴스가 매우 작습니다. Malwarebytes는 170MB로 무언가를하고있는 것 같습니다. Visual Studio 2017을 열었고 여기에 Firefox가 열려 있고 메모리 사용률이 65 %이며 Windows에서 압축 메모리를 사용하지 않아도됩니다. 따라서 IME, Windows 10은 8GB 미만의 RAM으로 잘 작동하며, 어쨌든 Damon이 Windows를 싫어하는 것은 대답과 관련이 없습니다.
Andrew Morton

1
@Damon : 그러나 여분의 RAM을 소비 한 것에 대해 어떤 종류의 분석을하지 않았다면, "Windows crap"대 "고용주가 설치 한 애프터 마켓 crap"에 대해 비난 할 근거는 없습니다. Windows 7, Windows 8.x 및 Windows 10에서 많은 사람들 (나 자신을 포함하여)이 메모리 집약적 계산을 수행했기 때문에 이러한 문제가 발생하지 않았으므로 범인이 참여하지 않았다는 것을 강력하게 제안합니다 (그러나 증명하지는 않습니다) Windows 자체의.
벤 Voigt

6

간단한 대안은 원격 PC에서 응용 프로그램을 전용 사용자 계정으로 실행하고 RDP, VNC 또는 기타 편리한 방법으로 제어하는 ​​것입니다.


원격 PC는 충분한 램 ...이있는 경우
LateralTerminal

1
@LateralTerminal 그것은 암시 적입니다.
Clonkex

2
네, 네트워크를 통해 두 머신의 RAM을 병합하면 네트워크가 작동하지 않으며 일반적인 응용 프로그램 (버튼 및 메뉴가있는 사각형, 회색 종류)에서는 작동하지 않습니다.
rackandboneman

6

또 다른 옵션은 램을 쉽게 확장 또는 축소 할 수있는 환경에 응용 프로그램을 임시로 배포하는 것입니다.

재부팅 한 번으로 크기를 변경할 수있는 Amazon AWS 인스턴스를 살펴 보겠습니다.

IE C5.large와 같은 작은 인스턴스에는 4GB 램과 2 코어가 있으며 Linux의 경우 하루에 $ 2.04 USD, Windows 설치의 경우 하루에 $ 4.26 USD입니다. EBS 디스크 공간은 추가 비용이며 할당 된 GB에 따라 선형으로 확장됩니다.

이 작은 크기로 시스템을 설정 한 다음 최대 소음을 발생 시키려면 시스템을 중지하고 인스턴스 크기를 변경 한 후 소프트웨어를 실행하십시오.

  • m5.4xlarge는 64GB 램과 16 코어이며, $ 18.44 USD / 일 또는 $ 36.10 USD / 일입니다.
  • r4.8xlarge는 244GB 및 32 코어이며, $ 51.07 USD / 일 또는 Windows의 경우 $ 86.40 USD / 일입니다.
  • x1.32xlarge는 1952GB 및 128 코어이며, $ 320.12 USD / 일 또는 Windows의 경우 $ 461.43 / day입니다.

아니면 가장 큰 것 ...

  • x1e.32xlarge는 3,904기가바이트 및 창문 $ 640.52 USD / 일 또는 $ 781.82 / 일 128 개 코어. 동료에게이 이상이 필요한 경우 문제를보다 최적화 된 방식으로 다시 작성해야합니다.

https://www.ec2instances.info/ 는 적절한 크기를 선택하는 데 도움이됩니다. 일부 지역은 다른 지역보다 비용이 많이 듭니다. 싱가포르와 캘리포니아 북부는 비싸다. 그러나 VM이 실행되지 않을 때 디스크 스토리지 비용 외에는 비용이 들지 않습니다.

단점은이 메모리가 오랫동안 필요한 경우 VM 시간을 구입하는 것이 비용이 많이 드는 방법이라는 것입니다. 그러나 회계사는 때로는 임대와 같은 운영 비용을 업그레이드와 같은 자본 비용보다 선호하는 것 같습니다.


1
이 답변이 OP의 요청에 따라 "네트워크를 통한 램 액세스"를 다루지 않는다는 것을 알고 있습니다. 램이 더 많은 원격 호스트에 액세스하는 것과 비슷합니다. 그러나 일부 지역에서 예산이 어떻게 작용하는지 아는 것은 자금을 조달하는 방식으로 업무를 수행하는 데 유효한 솔루션 일 수 있습니다.
Criggie

4

다른 사람들이 말했듯이 기술적으로 가능하지만 가치가 없습니다.

그러나 컴퓨터 사용 속도를 높이려면 일부 응용 프로그램을 원격 서버로 외부화 할 수 있습니다.

이것은 주로 작업중인 작업과 사용중인 응용 프로그램에 따라 다릅니다. 작은 데이터 출력에 많은 처리 시간이 필요한 프로그램을 실행하는 경우 컴퓨터와 다른 서버에서 실행하여 다른 작업을 수행하는 동안 시간과 리소스를 절약 할 수 있습니다.

내가 생각하는 예는 수정을 할 때마다 코드를 테스트하는 서버입니다. 이러한 솔루션의 아이디어는 특정 사용 사례로 제한된다는 것입니다.


4

IT 부서에 PC 용 RAM을 추가로 구매하도록 요청하고 작업 관리자에서 앱 사용 스크린 샷을 사용하여 필요성을 설명하십시오.


4
실용적인 솔루션 ... IT가 다른 시스템에서 더 많은 램을 일시적으로 교환하도록 요구하는 것조차 "무료"답변이어야합니다.
Xen2050

2
@ Xen2050 한편 동료 시스템이 더 이상 부팅되지 않기 때문에 동료가 울고 있습니다.
Willtech

3
@Willtech IT가 모든 부품과 예비 작업 시스템의 예비 부품을 모두 유지하는 것이 정상적이고 적절합니다. 가동 중지 시간은 실제 비용입니다.
Christopher Hostage

3

Kove ( http://kove.net/) 를 통해 상용 솔루션이 있습니다.). "백플레인"(이더넷은 정상적으로 작동)에서 작동하려면 Infiniband 인프라가 필요하지만, 세부 사항에 따라 RoCE와 같은 다른 옵션을 사용할 수도 있습니다. 코드 변경없이 통합 할 수있는 여러 가지 투명한 인터페이스와보다 직접적인 CPU 액세스를 통한 커널 우회 API (예 : 커널 오버 헤드 방지)를 제공합니다. 성능면에서 응용 프로그램에 따라 다릅니다. CPU가 바인드 된 경우 영향이 최소화 될 수 있습니다 (놀랍습니다). 로컬 호스트에 바운드 된 메모리 대역폭 인 경우 더 큰 메모리를 제공하지만 기존 병목 현상으로 인해 제한을받습니다. 이 경우 작업 부하가 상자에 넣을 수있는 것보다 더 큰 메모리를 갖는 것이 유리합니다. RAM이 부족하지 않습니까? 우리는 가상화 및 파이썬 머신 러닝 라이브러리에서 (매우) 좋은 결과를 보았습니다. 고급 HPC 응용 프로그램은 상당히 나빠지는 경향이 있지만 C API를 사용하여 성능을 계속 유지하면서 노드 수 (CPU주기가 아닌 RAM에 대한 노드)를 줄이면서 MPI와 비교하여 플러스였습니다. . 이것이 동료에게 적합한 솔루션인지 여부는 말하기 어렵지만 살펴볼 수있는 옵션입니다. 희망이 도움이됩니다. 분명히, 나는 Kove에서 일하지 않고 재정적 인센티브가 없지만 수년 동안 그들과 협력 했으며이 기술이 특정 컴퓨팅 수행 방식에 실질적으로 영향을 줄 수 있다고 생각합니다. 그러나 우리는 C API를 사용하고 성능을 계속 유지하면서 노드 수 (CPU주기가 아닌 RAM에 대한 노드 수)를 줄였습니다. 이는 MPI와 비교하여 플러스입니다. 이것이 동료에게 적합한 솔루션인지 여부는 말하기 어렵지만 살펴볼 수있는 옵션입니다. 희망이 도움이됩니다. 분명히, 나는 Kove에서 일하지 않고 재정적 인센티브가 없지만 수년 동안 그들과 협력 했으며이 기술이 특정 컴퓨팅 수행 방식에 실질적으로 영향을 줄 수 있다고 생각합니다. 그러나 우리는 C API를 사용하고 성능을 계속 유지하면서 노드 수 (CPU주기가 아닌 RAM에 대한 노드 수)를 줄였습니다. 이는 MPI와 비교하여 플러스입니다. 이것이 동료에게 적합한 솔루션인지 여부는 말하기 어렵지만 살펴볼 수있는 옵션입니다. 희망이 도움이됩니다. 분명히, 나는 Kove에서 일하지 않고 재정적 인센티브가 없지만 수년 동안 그들과 협력 했으며이 기술이 특정 컴퓨팅 수행 방식에 실질적으로 영향을 줄 수 있다고 생각합니다.


무한대 설정을 위해 얼마나 많은 기가 바이트 메모리를 구입할 수 있습니까?
joojaa

예, 여기서 가장 큰 문제는 8GB 메모리 만 있고 16 개가 필요하다는 이야기입니다. 이것은 "원격 램을 어떻게 사용합니까"가 아니라 "10 년 된 사양을 가진 시스템을 사용하는 이유"입니다. .
TomTom

@jooja 우리는 6TB가 있습니다. 우리가 본 것에 기초하여, 우리는 한계를 보지 못했습니다. 원격 RAM 장치를 계속 추가 할 수 있습니다. 상당히 선형 적으로 확장되는 것처럼 보이므로 엔지니어링 / 비용 문제입니다. 우리는 1PB 시스템을 종이에 한 번 설계했지만 테스트 할 수는 없었습니다.
Bill

@TomTom 8GB에 대한 의견을 보지 못했지만 예, 8GB 대 16GB RAM을 이야기하는 경우 새 컴퓨터의 경우 $ K 정도면 문제가 해결됩니다.
Bill

마더 보드가 엄청나게 오래되고 제한되지 않는 한 수백 달러에 RAM을 32GB로 업그레이드 할 수 있습니다.
푹신한

2

또 다른 관점-문제는 시스템 리소스의 제한이 아니라 친구가 작성하는 낭비되는 응용 프로그램입니다. 6GB의 RAM은 많은 메모리입니다.

다른 응용 프로그램의 대부분은 지나치게이다해서 부풀어 , 반드시 당신의 친구 응용 프로그램이 그 중 하나가 될 필요가 의미 않습니다. 다른 프로그래밍 방법을 사용하면 메모리 요구 사항을 줄이면서 속도를 향상시킬 수 있습니다. 예를 들어, 앱이 전체 데이터 세트를 메모리에로드 한 다음 작동하는 경우 선택 인덱스가 거의없는 (로컬 또는 원격) SQL 데이터베이스에 데이터를 저장하고 해당 데이터에 액세스하는 것보다 훨씬 낭비가됩니다. 가능하면 데이터를 한 번에로드하지 않고 블록별로 처리하십시오. 인 메모리 구조도 낭비 될 수 있습니다. 완료되면 사용 가능한 메모리가 확보됩니다. 메모리 맵 대신 RAM에로드하지 마십시오. 그리고 다른 수백 가지 팁 ...

그러나 응용 프로그램에 실제로 다른 컴퓨터에 저장해야 할 메모리가 더 필요한 경우 memcached 등 을 사용하여 메모리를 저장하도록 수정할 수 있습니다 . 향후 더 나은 확장을위한 보너스 포인트.


5
6GB의 메모리는 응용 프로그램에 따라 끔찍한 것이 아닙니다. 최종 사용자조차도 사진 편집 (포토샵은 RAM을 좋아하고 고급 카메라는 64 메가 픽셀 이미지를 촬영 함), 비디오 편집 (MUCH 악화)을 수행 한 다음 수학 작업을 수행합니다. 도대체 Excel조차도 기꺼이 몇 GB를 사용할 것입니다. 모든 사람이 트위터와 다른 것들을 사용하여 이메일을 쓰는 것은 아닙니다.
TomTom

높은 메가 픽셀 처리가 필요한 경우 @TomTom (요청의 특성상) 높은 메모리 요구 사항을 갖습니다. 그러나 당신이 당신의 엑셀 시트에 DNA 게놈 접합을하고있는 여전히 것으로, GB RAM의 몇 가지를 사용하지 않는 한 정확히 부풀게하고 제가 이야기 실수 프로그래밍의 종류. 아시다시피, 수십 년 전에 Lotus 1-2-3에서 Excel보다 3 배나 적은 RAM (및 프로세서의 수백 배 더 느린 프로세서)의 컴퓨터에서 가정 예산이 행복하게 처리되었습니다. 오늘의.
Matija Nalis

1
와우, 무식한 anser. 사람들이 엑셀을 사용하는 것에 대한 경험이 거의 없다고 가정 할 수 있습니다. Microsoft가 64 비트 버전의 Office를 만들었을 때 거의 사용하지 않는다고 말했습니다. Access 및 Excel 제외 대부분의 관리자는 Excel을 통해 잔인하게 큰 분석을 실행하고 많은 기가 바이트의 메모리를 사용하기 때문에 Access 및 Excel에는 예외입니다. Excel의 유연성과 비 프로그래머를위한 접근성은 도구를 사용하게합니다 (통계 전문가는 R을 사용하도록 훈련되는 경향이 있습니다). 개인적으로 일부 재무 담당자가 200 장의 엑셀 파일을 보았습니다.
TomTom

Excel에서 가정 예산을 계산하는 데 시간이 오래 걸리면 나보다 훨씬 풍부합니다. Excel 대 1-2-3에 대한 흥미로운 질문-1-23에서는 코어 계산 루프가 훨씬 빠를 수 있습니다. 그러나 멀티 코어 시스템에서 Excel은 1-2-3을 쉽게 이길 것입니다. 그리고 거대한 게놈 접합 시트는 아마도 시트 크기 때문에 1-2-3에서 열리지 않을 것입니다. 내가한다고 투명성의 이익에서하는 것은 내가 이전에 핵심 CALC 팀에 엑셀에서 일한 것을 인정하는, 그래서는 바이어스 할 수있다 ...
크리스 레이

1

따라서 사용자 는 네트워크를 통해 메모리를 공유 하는 방법 을 요청했습니다 . 좋은 생각이라면 아닙니다. 실제로 여기에 어떻게 할 수 있습니까?

나는 이것이 좋은 생각, 또는 성능이 좋은 것 말하는 게 아니에요,하지만 해야 작동합니다.

  • 컴퓨터 1 = "마스터"-코드가 실행되는 위치
  • 컴퓨터 2 = "자식"-메모리 기증자

iSCSI 마운트 지점을 만들 수있는 Windows Server가 아니라고 가정합니다.

컴퓨터 1 단계 :

  1. Dataram의 무료 램 디스크 다운로드 : http://memory.dataram.com/products-and-services/software/ramdisk
  2. 램 디스크를 생성하고 NTFS로 포맷하십시오-해당 사이트에서 지침을 확인할 수 있습니다
  3. 디스크 관리자 내에서 NTFS로 포맷 된 램 디스크에 VHD 파일을 만듭니다.
  4. SMB와 네트워크를 통해 Ramdisk 루트 디렉토리 공유-드라이브를 마우스 오른쪽 단추로 클릭하고이 폴더를 공유하십시오

컴퓨터 2 단계 :

  1. cild에서 공유 드라이브를 드라이브로 매핑
  2. 위의 3 단계에서 만든 VHD를 디스크 관리자에 마운트하십시오.
  3. Windows 페이지 파일 이동을 통해 로컬 페이지 파일 위치를 마운트 된 VHD로 이동
  4. 다른 페이지 파일 항목을 제거하십시오.

끝난!

주의 사항-Windows에서 페이지 파일을 네트워크 공유로 이동할 수 있으면 VHD 넌센스를 건너 뛸 수 있습니다. 이 온라인에 대한 예는 많지 않습니다 (명백한 이유로).

완전한 시스템 불안정성이 발생하거나 완전히 다른 문제가 발생할 수 있습니다. 어떤 일이 일어날 지 아무도 모른다.


0

어떤 종류의 "메모리"만이 아니라 네트워크를 통한 공유를위한 "RAM"을 언급 할 때, 최종적으로 대답은 이론적으로 그렇습니다.

스토리지 및 기타 임시 데이터와 같은 다른 유형의 메모리는 다양한 목적과 이유로 네트워크를 통해 정기적으로 공유됩니다. 같은 방식으로 RAM은 기술적으로 필요한 경우 네트워크를 통해 공유 할 수 있습니다. 그러나 성능과 비용은 현실 세계에서 실현하기에는 너무 높습니다.

RAM 또는 랜덤 액세스 메모리는 운영 체제에서 작업 공간으로 사용되므로 많은 읽기 / 쓰기 작업이 수행됩니다. 평균 시스템에서 RAM이있는 데이터 속도 용량은 다른 부품에 비해 가장 높습니다. RAM을 네트워크에 배치하는 경우 매우 빠른 데이터 전송 용량이 필요하며 기술적으로 달성하기 위해 가능하더라도 비용이 많이 듭니다. 네트워크 속도 업그레이드 비용의 작은 부분만으로도 컴퓨터의 RAM이 로컬로 제공됩니다.


0

응용 프로그램은 일반적으로 가상 메모리에서 실행되므로 가상 메모리 요구 사항은 성능 이외의 다른 결과없이 시스템의 사용 가능한 실제 메모리를 초과 할 수 있습니다. 운영 체제는 가상 메모리를 디스크로 페이징 하여 활성 순간 사용에 필요한 순간에 물리적 메모리를 확보합니다. 이것은 일반적으로 합리적인 지역성 을 가진 응용 프로그램에 적합합니다 (어느 때나 활동은 응용 프로그램의 가상 메모리 공간의 제한된 영역에 다소 집중되어 있습니다). 응용 프로그램의 로컬 성이 열악한 경우 (가상 공간 전체에서 메모리를 지속적으로 참조하는 경우) 모든 가상 메모리를 실제 메모리에 수용 할 수없는 경우 (모든 가상 메모리가 상주) 성능이 저하됩니다.

여기 몇 가지 가능성이 있습니다.

  • 응용 프로그램의 설치 공간이 크지 만 지역성이 좋은 경우 사용 가능한 컴퓨터에서 응용 프로그램을 실행할 수 있어야합니다. 더 많은 메모리를 가진 컴퓨터에서 성능이 수용 가능하거나 눈에 띄게 향상되지 않을 수 있습니다.
  • 지역성이 좋지 않은 경우 어쨌든 사용 가능한 컴퓨터에서 실행되는 것을 알 수 있습니다. (이것이 당신의 경우 인 것 같습니다)
  • (가정 된) 자기 디스크 드라이브를 솔리드 스테이트 드라이브로 업그레이드하십시오 (상당히 더 빠름).
  • 사용 가능한 컴퓨터에 메모리 추가 (가능한 경우)
  • 메모리가 더 많은 컴퓨터를 찾아서 실행해야 할 수도 있습니다.
  • 더 적은 가상 공간을 갖거나 더 나은 지역성을 갖도록 응용 프로그램을 개선하십시오 (응용 프로그램 작성자이거나 응용 프로그램 작성자와 관련이있는 경우).

원격 컴퓨터에서 메모리를 사용한다는 아이디어는 기본적으로 네트워크 페이징 파일을 만드는 것 입니다. 이론적으로는 작동 할 수 있지만 실제로는 페이징 파일이 네트워크 대역폭 및 대기 시간으로 인해 컴퓨터 (자체 하드 드라이브)에 로컬 인 경우 성능이 훨씬 향상됩니다. 원격 시스템이 페이징 파일을 메모리 나 디스크에서 호스팅하는지 여부는 중요하지 않습니다. 병목 현상 (가장 큰 성능 제한)이 네트워크가됩니다. 이것은 인터넷을 통해 특히 사실이지만, 원격 컴퓨터가 동일한 LAN에 인접하더라도 마찬가지입니다.


Windows는 네트워크 드라이브에서 페이지 파일을 허용하지 않으므로 충분히 빠르더라도 완료 할 수 없습니다.
Jamie Hanrahan

@JamieHanrahan 분명히 레지스트리에서 설정을 직접 변경하면 가능합니다. 네트워크 드라이브는 Windows에서 사용자 단위이므로 일부 세부 사항을 제외했는지 궁금합니다. 또한 재부팅 후 이것이 깨질 것이라고 생각합니다.
ivan_pozdeev

1
그럼에도 불구하고 그것은 끔찍한 아이디어이므로 UI가 그것을 배제하는 이유입니다. 네트워크 연결이 페이징을 신뢰하기에 충분하지 않습니다. 많은 커널 데이터 (페이징 풀)를 페이징 할 수 있습니다. 아주 짧은 시간 동안에도 액세스 할 수 없으면 OS가 중단됩니다.
Jamie Hanrahan

0

이것은 실제로 응용 프로그램의 유형과 사용되는 램에 따라 다릅니다.

예를 들어 많은 웹 응용 프로그램은 memcached서버 에 연결하여 네트워크를 통해 RAM을 사용할 수 있습니다 . 이렇게하면 많은 RAM이있는 다른 컴퓨터에 캐시 데이터 (및 빠르게 액세스해야하는 다른 데이터)를 저장할 수 있습니다.

물론 이것은 응용 프로그램에 따라 다르며 memcached를 사용할 수있는 응용 프로그램이 필요합니다. 브라우저가 이러한 캐시 백엔드 사용을 지원하지 않기 때문에 슬랙의 두 번째 인스턴스를 여는 데 도움이되지 않습니다.


-1

RAM을 공유하는 대신 해당 응용 프로그램 코딩 하여 네트워크 PC에서 실행되고 해당 PC에서 동일한 하위 .exe 파일을 만듭니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.