시스템이 너무 느립니다 [닫기]

시스템이 너무 느립니다 [닫기]

내 Linux 시스템의 응답 속도가 매우 느립니다. 명령 결과가 나올 때까지 기다려야 합니다.

그의 행동에 문제가 있는지 알아보기 위해 어떻게 조사할 수 있습니까?

답변1

Linux에서 성능 문제를 해결하는 것은 간단하지 않으며 모든 가능성을 다루지는 않습니다. 그러나 대부분의 문제는 일반적으로 3가지 범주로 분류됩니다.높은 CPU 사용량,높은 메모리 사용량또는입력/출력 사용법. 참고: 이들은 모두 서로 관련되어 있습니다.

첫번째:top -b -n 1 | head -15

그러면 다음과 같은 결과가 출력됩니다.

top - 15:32:09 up 19 days,  2:32,  2 users,  load average: 0.61, 0.46, 0.42
Tasks: 208 total,   1 running, 207 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.9%us,  3.6%sy,  0.0%ni, 95.2%id,  0.3%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  16430432k total, 15188864k used,  1241568k free,   304624k buffers
Swap:  2097148k total,      112k used,  2097036k free,  7342636k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
16106 user   20   0 4070m 2.1g 2.1g S   30 13.5   4678:57 VirtualBox
26070 user  20   0 6113m 749m 697m S    6  4.7 628:55.93 VirtualBox
14863 user   9 -11  272m 3192 1804 S    2  0.0   5:57.19 pulseaudio
    1 root      20   0 24724 2548 1276 S    0  0.0   0:05.32 init
    2 root      20   0     0    0    0 S    0  0.0   0:00.15 kthreadd
    3 root      20   0     0    0    0 S    0  0.0   0:33.45 ksoftirqd/0
    6 root      RT   0     0    0    0 S    0  0.0   0:03.74 migration/0
    7 root      RT   0     0    0    0 S    0  0.0   0:02.51 watchdog/0

먼저 살펴보세요부하 평균. 확인하다여기이것이 무엇을 의미하는지 이해하십시오(이 개념을 이해하는 것이 매우 중요합니다).

중요한:아래에서는 단일 코어(CPU 1개, 듀얼 코어 없음...)가 있다고 가정합니다.

5분 후 평균 부하가 1 미만이면 CPU 부하가 정상입니다. 이 시점에서 나는 그것이 무엇인지 확신하지 못합니다. 정상이 아닌 것처럼 문제 해결을 계속합니다.

5분 후 로드 평균이 1보다 크면 CPU 로드가 높은 것입니다. CPU 로드가 높은 이유를 이해하려면 top에서 제공하는 출력에서 ​​다음 항목을 확인하세요.

위 출력에서 ​​프로세스 목록을 볼 수 있습니다. 칼럼 읽기%CPU100%를 사용하는 프로세스가 표시되는지 확인하세요. CPU를 100% 사용한다는 점은 문제가 될 수도 있고 아닐 수도 있지만, 테스트로서는 차단하는 것이 가장 좋습니다.

상단에서 프로세스를 중지하려면 "k"를 누르고 프로세스의 PID 값을 입력하세요.

중요한:프로세스 이름을 적어보세요. 그들을 죽이기 전에 그들이 무엇을 하는지 이해하려고 노력하십시오(구글에서 검색). 일반 사용자로 소유한 프로세스만 중지할 수 있습니다(USER 열 아래 확인). 그렇지 않으면 루트여야 하지만 의심스러운 경우 어떤 프로세스를 종료할지 주의하세요. 당신은 또한 볼 수 있습니다%우리를그리고%sy가치,우리를사용자를 대신하여서쪽시스템을 위해. 기본적으로 이는 각각 사용자 공간과 커널 공간의 CPU 사용량을 나타냅니다.

시스템 속도가 빨라지면 종료한 프로세스가 문제를 일으키는 것일 수 있습니다. 그렇지 않다면 계속하세요

읽기 값%와. 높은? (50% 이상) 높으면 디스크의 입출력(I/O)이 높고 CPU가 대기 중이라는 의미입니다. iostat어떤 드라이브가 느린지 확인하려면 이 명령을 사용하십시오 .

메모리 사용량도 확인할 수 있습니다.

유형자유-m명령줄에서. 다음과 같은 내용이 표시됩니다.

                 total       used       free     shared    buffers     cached
Mem:         16045      14835       1209          0        298       7172
-/+ buffers/cache:       7365       8679
Swap:         2047          0       2047

사용 중인 버퍼/캐시 값을 확인하세요. 메모리를 너무 많이 사용하는 경우 이 값은 전체에 더 가까워야 합니다.

또한 스왑에서 사용된 값을 확인하십시오(스왑 파티션이 있는 경우). 이 값이 높다면(전체(스왑용) 아래 표시되는 최대값에 가깝다는 의미) 시스템이 많은 스와핑을 수행하고 있다는 의미입니다. 즉, 디스크로 페이징하고 있음을 의미합니다(RAM보다 훨씬 느림).

다시 말하지만, 이렇게 해도 문제가 해결되지 않을 수도 있지만 좋은 시작입니다.

답변2

체크인 통계:

#!/bin/sh
while [ 1 ]
do
/usr/bin/iostat -x -m -t 10 6 >> /var/log/iostat.`date +%Y%m%d`.log 2>&1
sleep 10
done

관련 정보