네트워크를 통한 하드웨어 리소스 공유 : 특히 RAM


8

두 개의 시스템이 있습니다. 하나는 랩톱이고 2GB RAM이 있고 다른 하나는 8GB RAM이있는 데스크톱입니다. 두 시스템 모두 10GB RAM을 갖도록 이러한 리소스를 공유 할 수 있습니까?

두 시스템 모두에서 실행하려는 소프트웨어는 Android Studio입니다 ... 현재 랩톱이 제대로 처리하지 못합니다.

추가 정보 : 두 시스템 모두 Windows 8을 실행 중이며 Intel Core i3 프로세서가 있습니다.

고맙습니다 ppl,하지만 다른 질문이 있습니다. 이더넷 케이블을 통해 공유하는 방법에 대해 ?? 스위치 또는 v-lan을 통해 인터넷을 전혀 사용하지 않고 하강 전송 속도를 얻습니까 ???


2
램은 양도 할 수 없습니다.
Ctrl-alt-dlt

15
물론 그렇게 할 수 있습니다. 그러나 공유 RAM은 네트워크 속도만큼 빠릅니다. 다시 말해, 이것은 가능하지만 (이론적으로는 이론적으로는) 실용적이지 않습니다.
Ajedi32

4
운영 체제를 전환하도록 요청하는 것은 합리적이지 않지만 Linux에는 가상 메모리 압축 이 있으므로 LZO를 사용하여 특정 세그먼트를 압축하여 실제보다 더 많은 RAM을 사용할 수 있다는 것을 알고 있습니다.
Naftuli Kay

5
Linux를 사용하는 경우 램 디스크, 네트워크 블록 장치 및 스왑 파일을 사용하여 무언가를 조작 할 수 있습니다. Windows에 이런 종류의 기능이 있다고 생각하지 않습니다.
Mark

4
당신은 잘못된 질문을하고 있습니다. 당신 물어야 질문은 더 강력한 머신을 어떻게 활용하여 빌드를 수행 하는가입니다. 그리고 가능한 대답은 Gradle SSH 플러그인 입니다.
Michael Hampton

답변:


21

일부 프로그램 만 네트워크를 통해 프로세스를 분할 할 수 있습니다 (일부 3D 렌더링 프로그램, RAM을 효과적으로 공유) (Julian Knight의 답변 참조)

인터넷의 문제는 너무 느리다는 것입니다 (Spiff의 답변 참조)

데스크탑의 RAM은 하드웨어와 호환되지 않으므로 RAM 스트립을 랩톱에 넣는 것만으로는 작동하지 않습니다.

할 수있는 일 :

랩톱에 원격 데스크톱 클라이언트를 설치하고 데스크톱에 연결하십시오. 이 방법으로 터널을 통해 "데스크톱에서 작업"할 수 있습니다.

따라서 무거운 프로그램 (android studio)이 데스크탑에서 실행됩니다! 그리고 랩톱은 원격 데스크톱 클라이언트에 의해서만 방해됩니다.

이것은 PC 하드웨어를 효과적으로 사용하므로 더 잘 작동합니다 (노트북과 원격 데스크톱 클라이언트가 충분하고 작업하기에 충분한 경우).

RAM을 "공유"하는 것이 아니라 PC의 RAM 만 사용한다고 덧붙이고 싶습니다.


1
한 운영 체제에서 다른 운영 체제로 창을 드래그 할 수있는 프로그램이 있다고 생각하지만 처리가 여전히 로컬 또는 다른 작업으로 수행되는지 여부는 확실하지 않습니다.
Ismael Miguel

1
유사점이지만 가상화입니다.
Arthur Kay

1
@Alvin 원격 데스크톱 응용 프로그램은 특별히 네트워크를 설정하지 않으면 인터넷을 통하지 않습니다. 네트워크에서 IP를 사용하여 데스크탑에 연결하면 네트워크에만 연결이 존재합니다.
Logarr

9

로컬 드라이브에 가상 메모리 페이징을 수행하는 것보다 속도가 느릴 수 있으므로 아마도 아닙니다. SATA-3은 초당 6 기가비트이며, 2 년 된 4TB 7200 RPM SATA-3 HDD (지속 가능한 157 MebiByte / sec (~ 1.3 기가비트 / 초) 읽기 / 쓰기 속도)를 가지고 있습니다. 기가비트 이더넷을 통한 지속 전송 속도는 최고 약 0.942 기가비트 / 초입니다.


4
참고를위한 것으로 일부 워크로드, 랜덤 액세스 지연 시간 대역폭보다 더 중요하다 (그리고 나는 당신의 디스크 대역폭 수치는 큰 액세스하지 임의 4KiB 청크 위해이었다 의심). 네트워킹 오버 헤드가 발생하더라도 한 시스템에서 다른 시스템으로 4KiB를 직접 전송하는 것은 아마도 디스크 탐색 (검색, 정착 및 회전 지연) 보다 더 빠를 것 입니다. SSD가 대중화되기 전에 스왑 공간을 위해 다른 시스템의 RAM을 사용하는 연구가있었습니다. 더 큰 시스템으로 작업을 옮기는 FuaZe의 답변 은 더 실용적입니다.
Paul A. Clayton

3
그러나 드라이브에는 기가비트 이더넷보다 MUCH, MUCH 속도가 낮은 임의 액세스 속도가 있습니다. 이를 위해서는 솔리드 스테이트가 필요합니다.
Arthur Kay

@Spiff 고맙습니다 ppl, 그러나 나는 다른 질문을 얻었다. 스위치 또는 v-lan을 통해 인터넷을 전혀 사용하지 않고 하강 전송 속도를 얻습니까 ???
Alvin

@ArthurKay : 또는로드 밸런싱 가상화 클러스터에 사용되는 전문가 급 30Krpm 드라이브.
user2284570

@Alvin 이것이 바로이 답변의 주제입니다. "기가비트 이더넷 ... 이상 ... 전송 속도"
BenjiWiebe

1

아니요, 불가능합니다.

약간의 예외는 3D 그래픽 렌더링과 같은 여러 컴퓨터에서 처리를 분할 할 수있는 도구를 사용하는 경우입니다. 그러나 이것은 실제로 당신이 요구하는 것이 아닙니다.


당신은 지옥 을 알고 있습니까? x86을 사용하고 있기 때문에 네트워크로 연결된 DMA 액세스가 도움이 될 수 있습니다.
user2284570

OP는 Windows 8을 지정하여 두려워하지 않습니다.
Julian Knight

이것은 당신이 말한 것과 반대로 그것이 가능하다는 것을 알려주기위한 것입니다. OS의 경우 시스템은 비공유 메모리 SMP 시스템으로 나타납니다.
user2284570

1

약 7 년 전에 메모리 컨트롤러는 별도의 칩 ( 노스 브릿지 또는 메모리 컨트롤러 허브)에서 CPU 로 옮겨졌습니다 . 왜 그런지 아십니까? CPU는 매우 빠른 RAM 액세스 속도를 필요로하기 때문에 지연 시간을 줄입니다. 와 현재의 CPU 액세스 RAM 68기가바이트 / S : http://ark.intel.com/products/82930/Intel-Core-i7-5960X-Processor-Extreme-Edition-20M-Cache-up-to-3_50-GHz . 최신 1Gbit / s 이더넷은 초당 약 120MB를 제공하므로 560 배 더 느립니다. 따라서 일반 PC에서 할 수있는 일은 아닙니다.

많은 컴퓨터가 네트워크에 연결된 클러스터 컴퓨팅 기반 솔루션이 있으며 각각 RAM에 데이터의 일부를 저장합니다. 일반 RAM보다 속도가 느리지 만 10TB의 데이터가 필요한 경우 선택할 수 없습니다. 그러나 이러한 솔루션은 소프트웨어에서 지원해야합니다. 그리고 안드로이드 스튜디오는 그것을 지원하지 않습니다.

따라서 안타깝게도 그 대답은 '아니오'입니다.


1
가상화 장애 복구 클러스터를 사용하기 위해 cat5E 이더넷을 통해 RAM을 공유하여 더 느린 드라이브로도 최신 OS 및 프로그램에서 제대로 작동한다고 말할 수 있습니다.
user2284570

1

현재 가능하지는 않지만 실제로는 카드에 어떤 형태로 나열되어 있으며 'ReadyBoost'시스템의 일부로 " After Vista "에 연필로 쓰여져 페이지 파일을 읽기위한 매체로 USB 스틱을 사용할 수 있습니다. 다른 파일) 디스크를 사용하는 것보다 빠릅니다. 여분의 RAM은 아니지만 많은 RAM을 사용하는 경우 컴퓨터가 디스크에서 페이징하는 데 걸리는 시간을 줄일 수 있습니다.

시나리오에서 ReadyBoost 전용 32GB USB 스틱을 사용하는 것이 좋습니다.


OP의 질문에 대답하지 않는 것 같습니다. 네트워크를 통해 RAM을 공유 할 수있는 ReadyBoost의 계획은 원래 있었지만 현재 구현 방식이 아닙니다.
ChrisInEdmonton

@ChrisInEdmonton 좋아, 나는 그것이 불가능하다는 것이 아니라 계획되었다고 말하지 않고 한 시점에서 계획되었다는 것을 구체적으로 진술하기 위해 대답을 편집했다.
Matthew Steeples

2
ReadyBoost는 너무 피의 속도가 느려 유용하지 않습니다. ReadyBOOST를 사용하면 실제로 컴퓨터 속도가 느려집니다. 전혀 부스트하지 않습니다.
Tonny

1
@ 토니 그것은 "마일리지가 다를 수 있습니다"시나리오 중 하나라고 생각합니다. 나는 개인적으로 그것이 느린 컴퓨터 속도를 내고 빠른 컴퓨터와 거의 차이가 없다는 것을 발견했다. 컴퓨터 속도가 느려진 적이 없습니다. 분명히 많은 수의 RAM 및 SSD 디스크를 대체 할 수는 없지만, 그렇게 할 수 없거나 갈 수없는 USB 버스를 사용하면 도움 이 것입니다.
Matthew Steeples

0

적어도 구글 측에서 큰 노력을 기울이지 않고서는 불가능합니다.

기본적으로 Android Studio는 BitCoin 마이닝 및 Folding @ Home과 같은 다중 노드 분산 처리를 지원해야합니다.

랩톱에서 컴파일을 누르면 처리를 위해 코드 덩어리가 데스크탑으로 전송됩니다. 데스크탑이 처리를 마치면 랩탑으로 다시 보내서 함께 패치 할 수 있습니다.


컴파일 이 Android Studio에서 메모리를 태우는 것이 의심 스럽습니다 .
Atsby

-1

사무실이 있습니다. 개인 비서가있는 방과 5000 권의 책을 보관할 수있는 캐비닛과 20 권의 책이있는 업무용 책상. 이 구성을 그림으로

  • 사무실 = 컴퓨터
  • Me = 프로세서 (CPU)
  • 보조자 = 운영 체제 (OS)
  • 데스크 = RAM
  • 캐비닛 = 하드 디스크

언제든지 내 보조원이 캐비닛에서 최대 20 권의 책을 꺼내어 책상 위에 놓아 작업 할 수 있습니다. 내 비서 자신의 작업으로 인해 그는 자신의 책상에 책 한두 권을 놓을 수 있습니다 (단지 우리가 가난하고 다른 책상을 감당할 수 없다고 가정 해 봅시다).

다른 책에 대해 작업하고 싶은 경우 공간이 더 이상없고 보조자가 책상에서 현재 사용하지 않을 현재 책을 결정해야하며 해당 책을 캐비닛에 다시 넣습니다. 내가 원하는 다른 책들을 찾아 가십시오. 조수는 내가 손이 닿지 않는 책에서 작업하고 싶을 때마다 책상과 캐비닛을 걸어 다니며 걸어야합니다.

RAM이 충분하지 않은 시스템의 경우 OS가 매우 활동적이지 않은 프로세스에 대해 수행하는 작업입니다. 메모리 내용을 가져 와서 가상 메모리 저장소의 디스크에 쓰면 RAM이 필요한 다른 프로세스에 사용할 수 있습니다. 책상과 캐비닛 사이에 거리가있는 것처럼 프로세서, RAM 및 디스크 사이에 "거리"가 있습니다. 랩톱을 사용하는 것처럼 디스크가 엄청나게 느리고 느립니다.

다음 사무실에서는 동료에게 80 권의 책을 넣을 수있는 책상이 있습니다. 그가 내 책을 저장하기 위해 책상의 일부를 "공유"할 수 있다면 좋지 않을까요? 사실상 100 권의 책을 가질 수있게 되었습니까?

우선, 각 사무실의 조수는 필연적으로 자신의 책을 배치해야하므로 자신의 작업을 수행 할 수 있습니다 (협상 불가능). 시스템의 모든 OS는 약간의 RAM을 사용하여 작업을 수행해야합니다. 그렇지 않으면 시작할 OS가 없습니다. 따라서 실제로 20 권의 책을 완전히 할당받지 못하거나 동료에게 80 권의 책을 완전히 할당하지도 않습니다. 그리고 제 동료에게는 사용 가능한 공간을 더 고갈시키는 자체 작업이 있습니다.

또한 보조원은 사무실간에 책을 이동하도록 훈련되지 않았습니다 (역량 수준에 한계가 있음). 기존 Windows 아키텍처에는 다른 원격 컴퓨터의 RAM을 직접 사용할 수있는 기능이 없습니다.

이제 보조원이 실제로 사무실간에 책을 올바르게 이동하고 책의 소유권을 명확하게 기억하도록 훈련을 받았다면, 사무실 간을 걷는 것이 더 먼 거리에 있기 때문에 사무실 간을 걷는 것이 훨씬 느리게 진행될 수 있습니다. 뿐만 아니라 보조자가 다른 사무실에서 책을 가져올 때 원치 않는 책을 다시 캐비닛으로 셔플하여 책상의 공간을 비워야합니다. 왜 그렇게 많이 걸 을까요?

적어도 유스 케이스의 경우, 네트워크를 통해 다른 컴퓨터에 물건을 저장 / 검색하기 위해 한 컴퓨터를 종료하는 것은 앱이나 OS가 그것을 수행하는 방법을 모르기 때문에 달성 할 수 없습니다. 그리고 그것은 매우 효율적이지 않을 것입니다.

랩톱을 계속 사용하려면 더 많은 RAM (더 큰 책상)을 설치하거나 솔리드 스테이트 디스크 (책을 더 빨리 찾을 수있는 구성 기능이있는 캐비넷)를 설치하십시오.

일부 구성에서는 실제로 원격 컴퓨터에서 데이터를 저장하고 검색하는 것이 더 빠를 수 있습니다 (클러스터 소프트웨어 기술이 있음) – 느리게 회전하는 디스크에 액세스하지만 여전히 시나리오에 맞지 않습니다.

하드웨어 리소스 간의 데이터 액세스 시간 규모를 고려하십시오 .


7
나는 당신이 질문을 문자 그대로 해석하고 있다고 생각합니다. 분명히 컴퓨터가 각각 10GB를 갖는 것은 불가능하지만 원칙적으로 컴퓨터가 10GB를 공유 할 수있어서 예를 들어 랩톱 대신 5GB를 사용하여 2GB로 제한 될 수 있습니다. 성능은 끔찍하지만 원칙적으로는 가능합니다.
David Richerby

@DavidRicherby-질문은 문자 그대로 읽어야합니다. 쓰여진 단어는 훌륭한 것입니다. 그것이 의미하는 유일한 것은 당신이 말하는 것입니다. 따라서 저자는 말 그대로 두 개의 독립 컴퓨터의 시스템 메모리를 결합하여 성능을 향상시킬 수 있는지 묻습니다. 물론 불가능합니다.
Ramhound

6
@Ramhound이 답변을 오해 한 것 같습니다. 이 답변은 2GB의 시스템과이 시스템을 얻을 수있는 기가 바이트 시스템을 결합하는 것은 불가능하다고 말한다 (즉 존재하지 않는 20기가바이트의 총 것이기 때문에) 10기가바이트으로합니다. 말 그대로 지나치게 해석되어 질문이 묻는 것입니다. 2GB + 8GB를 결합하여 10GB를 공유하는 두 시스템을 얻는 것에 대해 이야기하고 있습니다. 이것이 질문의 대상입니다. 따라서 당신은 질문을 문자 그대로 읽어야한다는 주장에 발을 딛게됩니다. 의도 된 질문은 적어도 의미가 있습니다.
David Richerby

@DavidRicherby-당신이 그렇게 말한다면. 답변이 도움이되었다는 것을 알았습니다. 올바르게 지적 했으므로 두 개의 독립된 자동차에서 두 개의 가스 탱크를 결합 할 수없는 것처럼 두 개의 독립 컴퓨터 시스템에서 시스템 메모리를 결합 할 수 없습니다. 물론, 그는 220을 생각해 냈지만 확실하지 않습니다.
Ramhound

이 질문에 유래 stackoverflow.com 의해 질문 GIGO의 완벽한 예입니다 :)
Ratna
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.