스왑 파티션 / 파일은 시스템에 어떤 영향을 미칩니 까?


20

일부 친구들은 안드로이드 폰에 일반 앱에 사용 가능한 메모리가 100MB 미만이라고 말했다. 예를 들어 512MB의 전화기 하나에 90MB의 사용 가능한 메모리 만 표시되므로 2-3 개의 앱만 동시에 실행할 수 있습니다.

스왑 파티션 / 파일을 만드는 것이 도움이되는지 궁금하지만 웹 전체에서 다양한 의견을 보았으며 어떻게 해야할지 잘 모르겠습니다. 내 질문은 다음과 같습니다.

(1) 특히 OS 및 킬링 할 수없는 서비스에서 자주 사용하지 않는 메모리 페이지가 많이 있습니까?

(2) 작은 메모리 페이지를 교체하면 플래시 메모리 수명이 어떻게 단축됩니까? 플래시 (또는 SD 카드?)가웨어 레벨링을 자동으로 수행합니까?

(3) 여러 앱을 실행할 때 스와핑이 성능에 실제로 도움이됩니까? 나는 (1)에 대한 대답이 예라고 가정합니다.

(4) 플래시 쓰기가 너무 느려서 스와핑이 발생할 때 응답 성이 손상됩니까?

(5) Android가 스왑 메커니즘을 Linux 커널에서 유지한다는 것이 사실입니까? 스왑 파티션 / 파일이있는 한 추가 구성없이 스왑을 수행합니까?

읽어 주셔서 감사합니다.

답변:


8

Android Application Life Cycle이 훨씬 고급 스와핑 형식이므로 Android 스와핑에 큰 이점이 있다고 생각하지 않습니다.

(1) 특히 OS 및 킬링 할 수없는 서비스에서 자주 사용하지 않는 메모리 페이지가 많이 있습니까?

데스크톱 Linux에서도 OS 커널을 교체 할 수 없으며 더 많은 RAM이 필요할 때 Android에서 이미 서비스를 종료합니다. 장치 공급 업체가 항상 쓸모없는 서비스를 실행해야한다고 계속한다면 장치를 루팅하십시오.

(2) 작은 메모리 페이지를 교체하면 플래시 메모리 수명이 어떻게 단축됩니까? 플래시 (또는 SD 카드?)가웨어 레벨링을 자동으로 수행합니까?

SD 카드가웨어 레벨링을 수행하더라도 스와핑은 상당히 많은 피해를줍니다.

(3) 여러 앱을 실행할 때 스와핑이 성능에 실제로 도움이됩니까? 나는 (1)에 대한 대답이 예라고 가정합니다.

안드로이드와 관련이 없습니다. 요청한대로 프로세스를 계속 처리하려고하는 기존 OS와 달리 Android는 사용하지 않는 오래된 프로세스를 강제 종료하고 메모리를 회수합니다. 이 전환은 작업 전환시 애플리케이션이 이미 상태를 저장하므로 빠릅니다.

(4) 플래시 쓰기가 너무 느려서 스와핑이 발생할 때 응답 성이 손상됩니까?

아마 아닐 것입니다. 이를위한 벤치 마크가 필요합니다.

(5) Android가 스왑 메커니즘을 Linux 커널에서 유지한다는 것이 사실입니까? 스왑 파티션 / 파일이있는 한 추가 구성없이 스왑을 수행합니까?

안드로이드가 스와핑 메커니즘을 유지하는지 여부는 알 수 없지만 그렇게하더라도 (또는 자신의 커널을 컴파일하더라도) 일부 구성이 여전히 필요합니다. 일반적으로 fstab스왑 파일을 가리키는 파일을 가지고 swapon -a있습니다.

실제로 스와핑이 실제로 성능을 저하시키는 이유는 다음과 같습니다. Android 메모리 관리 체계 인 Application Life Cycle이 올바르게 작동하지 못하게합니다.


답변 해주셔서 감사합니다. 그래도 여전히 질문이 있습니다. 삼성 Fascinate에서 10 개의 서비스 불가능한 서비스는 약 110M 메모리를 차지합니다. 22 개의 다른 killable 서비스가 실행 중이지만 "Running Application"은 실행중인 응용 프로그램이 없음을 나타냅니다. 그것은 내 친구의 전화이며 이전에 정확히 무엇을했는지 몰랐지만 많은 서비스 / 응용 프로그램이 동시에 실행될 수있는 것 같습니다. 이러한 모든 백그라운드 서비스 / 앱이 시작될 때 필요한 모든 페이지를 사용한다고 생각하지 않습니다. 또한 앱 상태 저장 + 다시로드 및 앱 다시 시작 + 복원 상태도 느려집니다.
상록수

이 문제를 생각하는 또 다른 방법은 다음과 같습니다. 플래시 수명 이 문제 가 아니라고 가정 하면 Android가 교체해야합니까? 그렇지 않은 경우 Android에서 스와핑이 유용하지 않은 Android 앱과 데스크톱 앱의 주요 차이점은 무엇입니까? 안드로이드 라이프 사이클이 데스크탑 / 서버 애플리케이션에서 작동하지 않는다고 생각합니다.
상록수

@evergreen : 응용 프로그램 상태는 응용 프로그램이 백그라운드로 갈 때 저장됩니다 (예 : 사용자가 집을 눌러 작업을 전환 할 때). 나중에 다른 응용 프로그램에 메모리가 필요한 경우 이전 응용 프로그램 또는 백그라운드 서비스가 강제 종료됩니다 (FK는 실제로 시간이 걸리지 않습니다). 이는 응용 프로그램 상태가 이미 오래 전에 저장 되었기 때문에 작업 종료가 즉각적임을 의미합니다. 이미 메모리에있는 응용 프로그램을 다시로드하면 가장 빠른 다시로드 시간이 생깁니다. 그러나 응용 프로그램이 이미 언로드 된 경우 응용 프로그램은 전체 다시로드를 수행해야합니다 (스왑과 동일한 상황)
Lie Ryan

@evergreen : 작업 킬러를 사용하는 경우 응용 프로그램을 강제로 언로드하고 응용 프로그램이 메모리에 남아있을 때 빠른 재로드 대신 항상 전체 재로드를 수행해야합니다. 스왑 파일 / 파티션을 사용하는 경우 (이전) 응용 프로그램이 스왑 아웃되며 복원시 전체 다시로드와 거의 동일한 작업이 수행됩니다. 예외 : 전체 다시로드를 사용하면 응용 프로그램 개발자는 영구 데이터와 임시 데이터를 분리하여 저장 대상과 스토리지 개선 대상을 최적화 할 수 있습니다. 스왑을 복원하는 동안 응용 프로그램 개발자는 말할 것도없고 모든 것을 스왑합니다.
Lie Ryan

@evergreen : 플래시 수명이 문제가되지 않는다고 가정하더라도 Android는 애플리케이션 수명주기가 더 나은 작업을 수행하므로 스와핑하지 않아야합니다. Android Life Cycle은 데스크톱 및 서버 환경에서 메모리가 제한된 환경을 위해 설계되었으며 엄청난 양의 메모리가 있으며 사용자는 훨씬 더 많은 멀티 태스킹을 수행하며 백그라운드 프로그램이 OS에 의해 종료되지 않을 것으로 예상합니다. 안드로이드 라이프 사이클의 약점은 애플리케이션 지원이 필요하다는 것입니다. 응용 프로그램은 언제든지 종료 할 수 있어야하며 사전 정의 된 지점의 상태를 저장해야합니다. 이러한 복잡성은 데스크톱 앱에는 적합하지 않습니다.
Lie Ryan

5

인터넷의 다른 모든 사람들이 당신에게 말할 것임에도 불구하고 스와핑의 이점은 분명히 있습니다. 그것을 시도하고 직접 참조하십시오. 경험적으로 G1 또는 메모리가 적은 다른 전화기에서 스왑을 사용하면 전화기가 더 빠르고 더 잘 작동합니다.

예, Android에는 수명주기 "작업 관리"가 내장되어 있지만 그다지 좋지 않습니다. 그것은 정기적으로 프로세스를 죽이고 그것을 메모리가 부족할 때, 그리고 애플 리케이션은 "사용하여 자신의 상태를 저장 할 것으로 예상된다 번들 당신이 그들을 다시 시작할 때, 그들이에 마지막으로 같은 상태에서 다시 시작".

안드로이드가 프로세스를 제거해야한다고 결정하면이 프로세스는 잔인하게 강제 처리됩니다. 그런 다음 커널은 해당 응용 프로그램이 제대로 작성되고 정중 한 요청 종료에 응답하지 않고 프로세스에 필요한 모든 리소스를 즉시 회수 할 수 있습니다. 커널이 애플리케이션 리소스를 즉시 회수 할 수있게하면 심각한 메모리 부족 상황을 피하기가 훨씬 쉬워집니다.

실제로 작동하면 좋을 것이며 무차별 스왑보다 낫습니다. 그러나 앱은 실제로 상태를 저장하지 않습니다. 그들은 최소한의 정보 저장하여 해당 상태로 돌아갑니다 . (그리고 일부 앱은이를 방해하지도 않습니다.) 해당 상태로 돌아가려면 시간이 걸립니다. 스왑은 실제로 다시로드해야하는 앱의 전체 상태를 저장하므로 앱 간 전환 속도가 훨씬 빨라집니다.

예를 들어 브라우저에서 다른 앱으로 전환하면 브라우저가 거의 항상 종료되므로 다시 전환 하면 인터넷에서 전체 페이지를 다시로드 해야합니다. 이것은 스왑에서 상태를 다시로드하는 것보다 길어지고, 데이터 요금제를 사용하는 경우 비용을 낭비하며, 웹 페이지가 동적 일 때 상태 문제를 일으 킵니다.

많은 앱이 시작하는 데 걸리는 시간보다 훨씬 오래 걸리거나 다시 시작할 때 실제로 동일한 상태로 돌아 가지 않기 때문에 교체하는 것이 더 좋습니다.

주식 시스템에 만족하는 사람들은 전화를 다르게 사용한다고 생각합니다.

Cyanogenmod와 스왑 파티션을 사용해야합니까?


수명 주기로두면 애플리케이션 (예 :로드 된 웹 페이지)을 향상시키기 위해 추가 데이터를 캐시하기로 결정합니다. 스왑을 사용하는 경우 OS의 결정이지만 OS는 저장할 항목과 성능을 최적화하기 위해 저장할 항목을 결정하기에 가장 적합한 위치에 있지 않으므로 모든 것을 저장하고 복원해야합니다. 작업을 전환하면 브라우저가 인터넷에서 페이지를 다시 다운로드하지 않으며, 브라우저를 자주 열고 많은 무거운 게임 및 기타 활동으로 전환 한 다음 모든 페이지가 즉시로드 된 마지막 페이지가있는 브라우저로 돌아갑니다.
Lie Ryan

권리. 두 시스템 모두 최적은 아니지만 대부분의 앱에서 스왑이 더 좋습니다. 브라우저는 페이지를 다시 열기 전에 종료 된 경우에만 페이지를 다시로드합니다. 메모리가 적은 전화기에서는 거의 항상 죽습니다.
endolith

@LieRyan- "모든 페이지가 즉시로드 된 마지막 페이지가있는 브라우저로 돌아 가기"브라우저를 다시로드 한 후 열린 페이지에서 스크롤 위치를 복원합니까? 크롬이하지 않는 것입니다 (이 브라우저를 매우 좋아하지만). 전화로 전환하기 전에 로그 웹 페이지의 중간에서 읽기를 중단했을 때 매우 불행합니다.
kerim

2

RAM이 340M 인 Spice mi-435 (인도에서만 판매)가 있습니다. 스왑 파일은 많은 도움이됩니다. 내 전화는 RAM이 부족한 상태에서 ICS를 실행하고 메모리 부족 상태로 들어 갔으며 스왑 파일이 많은 도움이되었습니다. 활성 상태가 아닌 경우 모든 애플리케이션 상태가 스왑으로 전송됩니다. 이를 통해 더 많은 응용 프로그램과 RAM 사용률이 높은 응용 프로그램을위한 전화 공간이 이전보다 훨씬 적은 지연으로 원활하게 실행될 수 있습니다. 이전에 사용했던 앱을 열 때 문제가 발생하지만 SD가 보드의 고속 RAM보다 훨씬 느리기 때문에 상태를로드하는 데 시간이 걸립니다. 그러나 스왑 옵션은 RAM이 적을수록 좋습니다. RAM이 512M 미만이지만 512M 이하인 경우 파티션을 교체하는 것이 좋습니다.

도움이 되길 바랍니다.


1

스왑 파일은 RAM이 높은 시스템에서도 도움이됩니다. 내 쿼드 코어 1GB 램 7 인치 태블릿은 UHS-1 마이크로 SD 카드에서 2GB 스왑으로 큰 멀티 태스킹 성능을 제공합니다. 물론 메모리 가격이 급격히 떨어지고 지속적인 쓰기에서도 낸드 플래시는 지난 몇 년 동안 지속될 것으로 예상됩니다.

기본적으로 의견에 따르면 성능 차이가 너무 급격하기 때문에 실제로 RAM 용량이 적은 사람은이 작업을 수행해야합니다. 사실 그것은 안드로이드의 표준 옵션이 될 것입니다 (더 큰 앱 캐시 및 적절한 크기의 인터넷 캐시와 함께).

나는 당신이 64-128gb micro sd (uhs-1), 또는 심지어 올해 uhs-2를 가지고 있다는 것을 의미합니다. Windows 슬레이트에 사용되는 SSD도 마찬가지입니다. 고속 공간을 모두 채우는 것은 아닙니다. 속도는 실제로 비디오로 재생하거나 앱을 메모리에로드하는 것입니다. 여기서는 정확하게 사용됩니다.

물론 이상적으로는 제조업체가 해상도 나 추가 코어보다 RAM에 더 집중할 것입니다. 분명히 시스템 속도가 더 높은 램으로 인해 많은 이점을 얻을 수 있기 때문입니다. 또한 전체 SSD 유형 시스템으로 전환하는 것과 같이 내부 저장소 속도도 높여야합니다. 그러나 최소한 고해상도는 모든 장치에서 일종의 RAM 부족을 야기하는 경향이 있지만, 스왑 파일과 합리적인 속도의 외부 sd 로의 캐싱은 많은 의미가 있습니다.

실제로 일부 브라우저는 풀 캐싱을 계속 유지하는 것이 좋으며 대부분의 브라우저는 느리거나 낮은 기능, 거의 빠르거나 완전한 기능을 제공하지 않습니다. 부분적으로 내부 드라이브의 앱 캐시 공간이 작기 때문입니다. 낮은 메모리 및 스토리지 환경에서 작동하도록 설계되었으며 전체 스토리가 바뀌고 있습니다. 램이 필요한만큼 잘게 자르지 않아도 스토리지는 확실하며 UHS-1 표준 (또는 올해 출시 된 UHS-2)에서 "빠르지 않다"고해도 " 빠른 "또는 ssd.

그리고 외부 메모리의 비용은 땅콩, 실제로는 더 큰 용량의 uhs-1입니다. 적어도 64gb uhs-1은 장치보다 훨씬 저렴하고 완벽하게 저렴합니다 (내가 50 달러이지만 USD는 적을 것입니다). 32 기가 바이트 이하는 기본적으로 몇 명의 tenner입니다.

데스크탑, 특히 현재 사양이 점점 높아지고 있습니다. 가장 느린 성능 링크는 스토리지에서 램으로로드됩니다. 이를 완화하기 위해 할 수있는 일이 많을수록 좋습니다.

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