편집하다: 이것은 top이 "M"으로 실행되는 경우입니다. Eclipse가 시작될 때의 스냅샷("iotop" 사용) Eclipse가 작업 공간을 빌드할 때의 스냅샷 Eclipse가 작업을 마친 후
이전과 마찬가지로 속도가 느려지고 모든 것이 정지됩니다. :(
OpenSuse 11.4 64비트를 설치했습니다. 이전에는 시스템이 빨랐습니다. 이제 Eclipse를 여는 데 오랜 시간이 걸리고 작업 공간을 구축하는 데 5분이 걸립니다(농담이 아닙니다!). Eclipse가 열렸을 때 시스템 상단의 모습은 다음과 같습니다.
Tasks: 181 total, 1 running, 180 sleeping, 0 stopped, 0 zombie
Cpu(s): 5.3%us, 1.6%sy, 0.0%ni, 57.2%id, 35.8%wa, 0.0%hi, 0.2%si, 0.0%st
Mem: 8099348k total, 8046104k used, 53244k free, 46904k buffers
Swap: 2103292k total, 0k used, 2103292k free, 7055848k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1778 root 20 0 137m 19m 10m S 4 0.3 0:04.92 Xorg
1 root 20 0 12460 864 724 S 0 0.0 0:00.88 init
2 root 20 0 0 0 0 S 0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0 0.0 0:00.10 ksoftirqd/0
4 root 20 0 0 0 0 S 0 0.0 0:00.00 kworker/0:0
5 root 20 0 0 0 0 S 0 0.0 0:00.00 kworker/u:0
6 root RT 0 0 0 0 S 0 0.0 0:00.00 migration/0
7 root RT 0 0 0 0 S 0 0.0 0:00.00 watchdog/0
8 root RT 0 0 0 0 S 0 0.0 0:00.00 migration/1
9 root 20 0 0 0 0 S 0 0.0 0:00.44 kworker/1:0
10 root 20 0 0 0 0 S 0 0.0 0:00.00 ksoftirqd/1
11 root 20 0 0 0 0 S 0 0.0 0:00.58 kworker/0:1
12 root RT 0 0 0 0 S 0 0.0 0:00.00 watchdog/1
13 root RT 0 0 0 0 S 0 0.0 0:00.00 migration/2
14 root 20 0 0 0 0 S 0 0.0 0:00.00 kworker/2:0
15 root 20 0 0 0 0 S 0 0.0 0:00.01 ksoftirqd/2
16 root RT 0 0 0 0 S 0 0.0 0:00.00 watchdog/2
17 root RT 0 0 0 0 S 0 0.0 0:00.00 migration/3
18 root 20 0 0 0 0 S 0 0.0 0:00.00 kworker/3:0
19 root 20 0 0 0 0 S 0 0.0 0:00.01 ksoftirqd/3
20 root RT 0 0 0 0 S 0 0.0 0:00.00 watchdog/3
21 root 0 -20 0 0 0 S 0 0.0 0:00.00 cpuset
22 root 0 -20 0 0 0 S 0 0.0 0:00.00 khelper
23 root 0 -20 0 0 0 S 0 0.0 0:00.00 netns
24 root 20 0 0 0 0 S 0 0.0 0:00.00 sync_supers
25 root 20 0 0 0 0 S 0 0.0 0:00.00 bdi-default
26 root 0 -20 0 0 0 S 0 0.0 0:00.00 kintegrityd
27 root 0 -20 0 0 0 S 0 0.0 0:00.00 kblockd
28 root 0 -20 0 0 0 S 0 0.0 0:00.00 kacpid
29 root 0 -20 0 0 0 S 0 0.0 0:00.00 kacpi_notify
30 root 0 -20 0 0 0 S 0 0.0 0:00.00 kacpi_hotplug
31 root 0 -20 0 0 0 S 0 0.0 0:00.00 ata_sff
32 root 20 0 0 0 0 S 0 0.0 0:00.00 khubd
33 root 20 0 0 0 0 S 0 0.0 0:00.00 kseriod
34 root 0 -20 0 0 0 S 0 0.0 0:00.00 md
35 root 0 -20 0 0 0 S 0 0.0 0:00.00 kondemand
36 root 20 0 0 0 0 S 0 0.0 0:00.00 khungtaskd
37 root 20 0 0 0 0 S 0 0.0 0:01.15 kswapd0
38 root 25 5 0 0 0 S 0 0.0 0:00.00 ksmd
39 root 20 0 0 0 0 S 0 0.0 0:00.00 fsnotify_mark
40 root 0 -20 0 0 0 S 0 0.0 0:00.00 aio
41 root 0 -20 0 0 0 S 0 0.0 0:00.00 crypto
45 root 0 -20 0 0 0 S 0 0.0 0:00.00 kthrotld
지금은 Eclipse만 실행 중이고 Eclipse는 나름대로 즐거운 시간을 보내고 있습니다. 브라우저도 열리지 않습니다. 시스템이 크롤링되는 이유는 무엇입니까? 어떤 도움이라도 좋을 것 같습니다.
감사해요.
답변1
메모리를 너무 많이 사용하고 있습니다. 그 줄을보세요 :
메모리: 총 8099348k, 사용된 8046104k, 사용 가능한 53244k,
이것이 첫 번째 단서입니다. 두 번째 단서는 나중에 top을 실행하고 caps 키를 누를 때 나와야 합니다 M
. 그러면 메모리를 많이 차지하는 프로세스가 맨 위에 오도록 프로세스가 정렬됩니다. 이는 메모리 누수가 있는 프로세스일 가능성이 높지만 증가하는 데이터베이스에서 SOLR을 실행하는 것과 같은 다른 것일 수도 있습니다.
iotop은 현재 수행 중인 IO 유형을 잘 파악하지만 일반적인 디스크 IO라는 사실만 알게 될 것입니다. RAM이 더 많으면 디스크 캐시가 더 커지므로 디스크 IO가 줄어듭니다. Eclipse가 작업을 마친 후 top은 무엇을 보여줍니까? 어쩌면 너무 많은 플러그인을 로드했을 수도 있습니다.
또한 free -mt
이는 실제 버퍼 캐시 크기를 확인하는 더 좋은 방법입니다. 다음과 같은 줄이 있을 것입니다:
-/+ buffers/cache: 3996 8475
이 두 숫자 중 두 번째는 애플리케이션에서 사용할 수 있는 버퍼 캐싱에 사용할 수 있는 RAM의 양입니다. 내가 제공하는 출력은 SOLR을 실행하는 서버와 총 RAM이 12G인 다른 Java 웹 애플리케이션에서 나온 것입니다.
제가 귀하의 입장이라면 쉘 프롬프트에서 Eclipse를 시작하여 stderr 로그 메시지를 볼 수 있을 것입니다. 그런 다음 top
해당 M
옵션을 사용하여 Eclipse가 로드될 때 RAM 사용량을 줄일 수 있는지 확인하기 위해 모니터링(또는 반복 실행)할 것입니다. free -mt
당시 무슨 일이 있었는지 .
또한 시작 시 다른 작업에 의해 동작이 수행될 수도 있습니다. Apache 모드가 너무 많거나 이와 유사한 것일 수도 있습니다. 시작하는 동안 타임스탬프를 사용하여 유사한 메모리 모니터링을 수행하기 위해 언제든지 특수 초기화 스크립트를 추가할 수 있습니다.
답변2
이미 openSUSE 11.4보다 최신 버전을 실행하고 계시기를 바랍니다. 참고: iotop 스크린샷을 보면 속도 저하의 원인은 과도한 I/O 프로세스( preload
예 tracker-store
: . 둘 다 도움이 되어야 하지만 성능이 저하될 수 있는 상황이 있습니다(보안 관점에서 모든 개인 데이터를 색인화하는 것이 반드시 좋은 생각은 아닙니다).