Linux 데스크탑의 반응성을 높이려면 어떻게해야합니까?


30

실제 메모리가 소진 될 때까지 Linux가 제대로 작동한다는 경험이 있습니다. 스왑 공간이 사용 되 자마자 성능이 심각하게 저하되고 GUI가 응답하지 않게됩니다.

이 문제는 몇 가지를 시도했지만 문제가 남아 있기 때문에 특정 배포판 또는 데스크톱에만 국한되지 않습니다.

이것에 대해 어떻게해야합니까?


이것은 리눅스 커널의 알려진 문제입니다 ... 최근에 패치를 수정하기 위해 최선을 다하고 있다고 읽었습니다. 그것에 대한 참조를 찾고 ...
xenoterracide

1
이 문서이 하나 phoronix에 내가 생각하고 있었는지는 ... 나는 생각한다.
xenoterracide

기본적으로이 기사는 2.6.36에 들어가는 패치에 대해 이야기하므로 RC를 실행하거나 마스터가 감히하지 않는 한
xenoterracide

당신은 얼마나 많은 RAM을 가지고 있습니까? 배가 고픈 프로그램은 무엇입니까? VM? JVM?
tshepang

나는 8GB의 RAM을 가지고 있으며 범인은 일반적인 응용 프로그램 (Firefox 및 Chrome과 같은 웹 브라우저, 썬더 버드와 같은 전자 메일 클라이언트 및 IRC 클라이언트)
txwikinger

답변:


15

SwapFAQ , 특히 swapiness 매개 변수를 읽는 것이 좋습니다 .


3
+1, 스왑은 우리가 사용하지 않기를 희망하는 반창고입니다.
Avery Payne

1
나는 성공하지 않고 서로 다른 설정을 광범위하게 시도했습니다. 나는 또한 교환 가치에 대한 의견이 통일되지 않았다는 것을 알았습니다. 데스크탑의 경우 일부는 10을 권장하고 다른 일부는 100을 권장합니다. 즉, 전체 반대 효과를 제안합니다.
txwikinger

1
추가 테스트 후에는 swapiness 100과 0을 사용하지 않는 것이 좋습니다. 두 가지 모두 데스크탑 클럭이 20 분 이상 정지되는 스와핑 열풍에 처한 상황을 만들었습니다.
txwikinger

11

몇 가지 조언 :

  1. 한 번에 너무 많은 GUI 프로그램을 실행하지 마십시오.
  2. 필요하지 않은 백그라운드에서 실행중인 모든 프로그램 (예 : Apache)이 중지되었는지 확인하십시오.
  3. 메모리 부족 상황을 목표로하는 배포판 사용 (예 : 넷북)
  4. 더 많은 메모리를 구입하십시오.
  5. 스왑 파티션을 위해 더 빠른 HD (또는 SSD)를 구입하십시오. :)


2
최신 SSD를 사용하면 SSD가 죽기 오래 전에 전체 시스템이 폐기되어 교체 준비가 완료 될 수 있습니다. 요즘 걱정할 가치가 없습니다. 물론 디스크 (SSD 또는 기계식)는 언제든지 죽을 수 있기 때문에 백업은 여전히 ​​필요합니다.
cas

4

더 많은 메모리를 구매 하시겠습니까? :)

시스템에있는 것보다 더 많은 메모리를 사용하는 응용 프로그램을 실행중인 경우 다른 운영 체제가이 작업을 수행하여 스왑 파티션으로 스왑 할 수있는 작업은 없습니다. 이러한 상황이 자주 발생하거나 필요하지 않은 일부 프로그램의 실행을 중지하거나 실제로 더 많은 메모리를 구입하면 요즘 매우 저렴합니다.


3
이미 최대 RAM이 있습니다. 스와핑을보다 효율적으로 만드는 약간의 조정을 알고 싶습니다.
txwikinger

1
스왑을 비활성화하면 시스템 응답 속도가 빨라지는 것을 알았습니다. 커널이 앱에 메모리가 없다고 알려주고 그에 따라 응답합니다.
cjac

3
@ cjac : 일반적으로 그렇지 않습니다. 커널이이를 수행하도록 구성 할 수 있지만 기본적으로 초과 커밋 (시스템에없는 앱 메모리를 제공)합니다. 앱이 메모리에 닿아 커널이 더 이상 메모리 부족 킬러를 찾지 못하면 하나 이상의 프로세스가 종료됩니다.
Kristof Provost

@txwikinger 스왑이 느린 이유는 RAM 속도가 하드 디스크보다 훨씬 빠르기 때문입니다. RAM 탐색 시간은 나노초 (10 ^ -9)로 측정됩니다. HDD 탐색 시간은 밀리 초 (10 ^ -3)로 측정됩니다. 즉 6 배의 크기입니다. 즉, RAM이 스왑보다 백만 배 빠릅니다. 당신의 질문은 자전거를 콩코드 제트기처럼 빨리 달리는 방법을 묻는 것과 같습니다. 당신은 할 수 없습니다.
bahamat

1
@bahamat. 당신은 명백한 것을 진술하고 있지만 문제는 아닙니다. 문제는 스와핑이 매우 비효율적으로 이루어 지므로 철학자의 문제 방향으로 무언가를 창출한다는 것입니다.
txwikinger

2

커널 변수 'vm.swappiness'및 'vm.page-cluster'의 값을보다 적절한 값으로 변경하십시오.

  1. 터미널 에뮬레이터를 시작하십시오.
  2. cd /etc/sysctl.d/
  3. sudo echo "vm.swappiness = 0" > 60-memory-management.conf
  4. sudo echo "vm.page-cluster = 1" >> 60-memory-management.conf
  5. sudo chmod 644 60-memory-management.conf
  6. 재부팅하십시오.

새 값이 다음에서 사용 중인지 확인하십시오.

  1. cat /proc/sys/vm/swappiness
  2. cat /proc/sys/vm/page-cluster

1

스와핑은 성능에 상관없이 성능을 크게 저하 시키므로이를 피하는 것이 가장 좋습니다. 어리석게 들릴 수도 있지만 한 가지 옵션은 스왑 파티션을 구성하지 않는 것입니다. 나는 지금 얼마 동안 모든 시스템에서 스왑 프리를 실행 해왔다 :

  • 넷북의 1GB는 웹 탐색, 음악 및 기타 가벼운 콘텐츠를 듣기에 충분합니다.
  • 데스크탑의 4GB는 위의 모든 것 외에도 개발 (Eclipse에서도) 및 기본 이미지 편집에 충분합니다.

실제로 메모리를 많이 사용하는 작업 (큰 이미지, 3D 모델링, CAD)을 사용하는 경우 RAM을 구입해야합니다.


예. 나는 천천히 같은 결론에 도달합니다. Linux 커널 스왑 방식이 데스크탑에 매우 효율적이지 않은 것으로 보입니다 (이 모든 것이 서버에서 제대로 작동 함). 따라서 데스크톱에서 모든 스왑 공간을 비활성화하는 것이 좋습니다. Btw. 나는 8GB RAM을 사용합니다 :)
txwikinger

1
@ txwikinger : 서버에서 왜 좋은지 물어볼 수 있습니까?
phunehehe

1

배포판에서 설정 방법을 알아낼 수 있다면 compcache 를 사용해보십시오 . 예를 들어, Ubuntu에서 /etc/initramfs-tools/initramfs.conf 를 편집하고 "COMPCACHE_SIZE"줄을 편집하여 활성화 할 수 있습니다 .

compcache를 활성화 한 후 디스크상의 스왑이 한 번만 터치 된 것으로 생각되지 않습니다. 현재 스왑 통계는 다음과 같습니다.

% swapon -s
Filename                                Type            Size    Used    Priority
/dev/ramzswap0                          partition       1028084 69504   100
/dev/sda5                               partition       3148668 0       -1

compcache 장치 (ramzswap0)가 사용되고 디스크 내장 장치 (sda5)는 사용되지 않습니다.


0

더 빠른 RAM을 구입하고 시스템에서 모든 RAM을 사용하고 있는지 확인하십시오. 어떤 CPU와 아키텍처를 사용하고 있습니까?


이것이 리눅스 시스템을 어떻게 조정합니까? 여기서 하드웨어 변경 또는 개선은 문제가되지 않습니다.
txwikinger

리눅스 설치가 사용 가능한 모든 하드웨어를 사용하고 있지 않을 수 있습니다. 이것은 성능 문제이며 이전 의견에서 최대 RAM 한도에 도달했다고 언급했습니다. 구성에 대한 자세한 내용을 알지 못하면보다 쉬운 하드웨어 경로를 얻을 수 있습니다.
Mike H

1
"Linux 시스템"은 하드웨어와 소프트웨어로 구성됩니다. 메모리를 추가하는 것이 시스템을 "트위 킹"합니다.
cjac

Linux는 하드웨어에서 실행되는 소프트웨어입니다. 리눅스에는 하드웨어가 포함되어 있지 않습니다 : p
txwikinger

1
나는 RAM보다 속도가 빠를수록 램이 더 적절하다고 생각합니다. RAM 속도는 보통 Mobo에 의해서도 제한됩니다 ...
xenoterracide

0

화면 오른쪽의 도크에서 시스템 모니터 애플릿을 실행합니다. 시스템이 느리게 느껴질 때마다 미터를 봅니다. 용량이 10 % 이상인 경우 프로세스에 문제가 있음을 나타냅니다.

시스템 모니터를 클릭하면 시스템의 자원을 소비하는 프로세스를 파헤칠 수 있습니다.

http://www.colliertech.org/~cjac/tmp/screenies/system_monitor.png


1
대부분의 시스템 모니터는 Schrödinger의 고양이보다 느린 시스템을 끌어 내립니다. 메모리를 늘리지 않으면 서 메모리 누수를 해결하거나 실행중인 불필요한 프로그램을 잘라 내야합니다.
jjclarkson

0

몇 년 전 스왑을 위해 전용 드라이브를 사용하는 것이 일반적이었으며 자체 IDE / ATA 버스에 연결되어 있었지만 동일한 드라이브에서 데이터를 스와핑하는 것은 성능 측면에서 의미가 없었습니다.

이 트릭은 10 년 전에 효과가 있었지만 이제는 드라이브 속도를 사용하여 의회 라이브러리를 교체하지 않는 한 이러한 성능 저하가 발생하지 않아야합니다. 그렇지 않으면 드라이브 상태에 대해 걱정할 것입니다. 최근에 확인 했습니까?

당신은 항상 그것을 시도 할 수 있습니다, 당신은 당신의 RAM이 이미 최대 한 경우 많은 대안이 없습니다. 원하는 경우 GUI의 응답 성이 향상됩니다.


데스크탑에 대한 많은 사용은 랩북 또는 두 번째 드라이브를 허용하지 않는 넷북이기 때문에이 옵션을 제공하지 않습니다.
txwikinger

@txwikinger 분명히 사실,하지만 난 노트북 특별히 :-) 언급, 그렇지 않으면 나는이 제안 않았을 것 "바탕 화면"을 읽고 질문의 제목을 고려
반전

글쎄 .. 나는 스와핑이 합리적으로 잘 작동한다고 믿는 서버와 구별하기 위해 데스크탑을 의미했다. :)
txwikinger

0

네트워크에 충분한 양의 RAM이있는 두 번째 Linux 시스템을 설치하고이를 주 시스템에 NFS 마운트 한 다음 스왑 파일을 해당 시스템에 배치하십시오.


1
기가비트 이더넷을 사용하면 미드 레인지 SSD보다 속도가 훨씬 느려 7200rpm 하드 디스크 속도에 도달 할 수 있을지 확실하지 않습니다. Firewire를 사용하면 로컬 스왑 속도에 도달 할 수 있습니다. 그러나 단순히 RAM을 추가하는 것이 더 효과적입니다.
Gilles 'SO- 악마 그만해'

0

한 가지 방법은 최적화 된 커널 을 사용하는 것 입니다.


링크 만 게시하지 마십시오. 링크하려는 사이트가 다운되는 경우 여기에 답을 의미있는 정보가 충분하도록 컨텍스트를 포함하십시오.
jasonwryan

0

수년간의 경험으로, 조정할 것이 많지 않다고 말할 수 있습니다.

하지만 최근에 많은 도움이되었습니다.

1

Ubuntu에서 Arch Linux로, Unity / Gnome에서 xfce 데스크톱으로 옮겼습니다.

우분투는 어디에서나 치명적입니다. 부팅 / 그래픽 .. 느립니다.

2

인텔 SSD (80g)를 구입하여 루트 시스템을 심었습니다.

내 아치 리눅스 + XFCE4 + docky + conky는 10 초 안에 부팅되며 (lxdm으로 자동 로그인) Matlab과 같은 SSD에 설치된 모든 응용 프로그램은 훨씬 빠르게 시작됩니다.

그만한 가치가있는 돈.

루트 파일 시스템이 뒤섞이는 것을 방지하기 위해 / tmp를 다른 곳에서 램 디스크의 제한된 크기로 사용하십시오.

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