실행하고 있는지에 대해 서버 응용 프로그램 또는 로컬 컴퓨터,당신은 당신의 실행하는 컴퓨터입니다. 그렇기 때문에 컴퓨터의 CPU,디스크 및 메모리 사용량을 모니터링해야합니다. 모니터링을 것 같은 메모리 사용량 및 디스크 사용량은 실제로 매우 쉽습니다. 얼마나 많은 디스크 공간이 남아 있습니까? 디스크가 조각화되어 있습니까? 사용중인 응용 프로그램에 충분한 RAM 이 있습니까? 정기적으로 메모리를 교환하고 있습니까?
그것들은 대답하기 쉬운 질문이며,당신이 물어야하는 질문입니다., 그러나 일부 질문은 CPU 메트릭에 관해서 특히,더 복잡하다. 물론 전체 CPU 사용량과 같은 간단한 측정 항목이 있습니다. 그러나 Linux 를 사용하는 경우 CPU 부하와 같은 더 난해한(때로는 더 유용한)메트릭이 있습니다. 이 게시물에서는 CPU 로드 메트릭이 실제로 무엇을 의미하는지,그리고 서버를 최적화하는 데 사용할 수있는 방법에 대해 이야기하겠습니다.
CPU 의 부하를 대 CPU 사용량
첫 번째 것을 이해하는 CPU 의 부하를 동일하지 않은 것으로 CPU 사용., 비록 그들이 비슷하게 들릴지라도,그들은 상당히 다릅니다. CPU 사용량은 CPU 가 무언가를 적극적으로 계산하는 데 얼마나 많은 시간을 소비하는지 백분율로 측정 한 것입니다. 예를 들어,지난 60 초 중 54 초 동안 중단없는 처리 능력이 필요한 프로그램이 있다면 한 코어의 CPU 사용량은 90%가됩니다. 대신 프로그램이 하나의 코어에서 6 초의 처리 시간 만 필요한 경우 사용량은 10%가됩니다.
대부분의 회사는 서버의 CPU 사용량을 가능한 한 100%에 가깝게 유지하려고합니다., 대부분의 서버들은 판매에 의해 전반적인 계산력,그리고 서버가 있는 경우에만 앉아서 30%,CPU 사용량 당신이 지불을 위해 너무 많은 프로세서 힘입니다. 프로세서를 하위 계층으로 다운 그레이드하고 비용을 절감하며 서버 성능의 품질 저하를 볼 수 없습니다.
CPU 로드
CPU 부하가 다릅니다. CPU 로드는 CPU 가 작동하는 시간의 비율을 측정하는 대신 한 번에 프로세서 코어를 사용하거나 기다리는 프로그램 수를 측정합니다. 완전히 유휴 상태 인 프로세서는로드 값이 0 입니다., 우리의 이전 예에서,우리는 1 분의로드 시간을 가질 것입니다.9 과.1,각각. 그건 꽤 직관적입니다. 그러나 CPU 부하에 대해 직관적이지 않은 것은 1 의 값이 반드시 완전히로드 된 측정이 아니라는 것입니다.
대신”전체”CPU 부하를 구성하는 것은 CPU 가 자랑하는 운영 체제 스레드 수에 따라 다릅니다. 대부분의 Cpu 는 요즘 하나의 CPU 스레드 이상을 실행하는 단 하나의 CPU 코어 이상을 구성합니다. CPU 에 4 개의 코어가있는 경우 1 의 CPU 로드는 완전히로드 된 CPU 가 아닙니다. 대신 4 분의 1 만로드됩니다., 대신 부하 값이 1 이 아닌 4 인 경우 CPU 부하가 CPU 에 대해 전체로 간주됩니다.
Linux CPU 부하 해독
Linux CPU 부하 합계를 표시하는 프로그램을 실행하면 처음에는 약간 혼란 스러울 수 있습니다. Uptime 또는 top 과 같은 명령을 실행하면 1.68 0.55 5.91 처럼 보이는 CPU 부하 값이 표시 될 수 있습니다. 당신이 찾고있는 것을 모른다면,이것은 소음처럼 보입니다. 고맙게도,이것은 실제로 해독하기가 꽤 쉽습니다. 여기에는 세 가지 값이 있으며 순서대로 살펴 보겠습니다.첫 번째 값은 1.68 입니다. 이것은 마지막 순간 동안의 CPU 부하 값입니다., 우리가 전에 언급했듯이,이것은 마지막 순간에 얼마나 많은 프로그램이 CPU 시간을 사용했는지를 측정 한 것입니다. 그래서,중 마지막 순간에 이 기계,평균이 있었의 1.68 프로그램 중 하나를 사용하여 CPU 처리 시간 또는 기 CPU 처리 시간을 단축할 수 있습니다. 이것이 단일 스레드 CPU 인 경우 컴퓨터에 과부하가 걸렸음을 의미합니다. 사용자는 자신의 프로그램이 CPU 에서 실행되기를 기다리고 있으며 성능이 저하됩니다. 는 경우,대신에,이 듀얼 코어의 컴퓨터 또는 쿼드 코어,사용자가를 얻을 수 있 CPU 시간으로 신속하게 그들이 필요로 하는 동안 그것을 있습니다.,두 번째 값은 0.55 입니다. 이것은 지난 5 분 동안의 측정입니다. 우리가 이전에 논의했듯이,1 이하의 측정은 CPU 가 그 창에서 시간의 일부를 완전히 유휴 상태로 보냈다는 것을 의미합니다. 이 경우 CPU 는 거의 절반의 시간 동안 유휴 상태였습니다. 우리가 CPU 를 지속적으로 무언가를하도록 최적화하고 있다면,그것은 좋은 징조가 아닙니다.
최종 숫자 인 5.91 은 마지막 15 분의 측정 값입니다. 8 코어 CPU 를 사용하고 있다면이 숫자는 특히 충격적이지 않습니다. 듀얼 코어 CPU 를 사용하는 경우 5.91 과 같은 숫자는 CPU 가 매우 과부하되었음을 의미합니다., 사용자는 정기적으로 CPU 시간을 기다리고 있으며 아마도 성능이 크게 저하 될 것입니다.
Unix 대 Linux CPU 로드
경우에 당신을 사용하여 CPU 를 사용하여 부하에서 측정 Unix,일부 이러한 숫자를 보일 수 있습니다 종류의 높습니다. 유닉스와 리눅스는 CPU 부하를 다르게 측정하기 때문이다. Unix 는 CPU 부하를 적극적으로 사용하거나 CPU 처리를 기다리는 프로그램의 척도로 명시 적으로 측정합니다. 리눅스는 일을 조금 다르게 측정하고,어떻게 이해하는 것은 좋은 시스템 관리의 열쇠입니다.,
리눅스 측정한 CPU 의 부하를 모두 찾고 프로그램에서는 현재 사용하기 위해 CPU 시간 이외에는 프로그램에서 기다리고 있다. 예를 들어,네트워크 요청을 기다리거나 디스크에서 무언가를로드하는 프로그램은 Unix 의 CPU 로드에 포함되지 않습니다. 리눅스에서는 그렇습니다. 이것이 더 좋든 나쁘 든 접근 방식인지 여부는 사용 사례에 따라 다릅니다. 전체 CPU 사용량 만 측정하려는 경우 Unix 는 더 나은 인터페이스를 제공합니다., 그러나 네트워크 요청을 기다리는 30 초 동안 잠겨있는 프로그램이 있으면 리눅스가 그 사실을 알려줄 것입니다. 유닉스는 그 데이터를 전혀 표면화하지 않을 것이다.
Cpu 부하 최적화
CPU 부하를 최적화하기위한 은색 총알이 없습니다. 그것은 당신이 전체적으로 접근해야하는 과정입니다. CPU 사용량과 마찬가지로 서버에있을 때 100%에 가깝기를 원하지만 그 이상은 아닙니다. 때때로,당신의 CPU 부하를 최적화하는 과정은 매우 쉽습니다. 어쩌면 당신의 서버는 동시에 두 개의 스레드 만 활용할 것입니다., 이 경우 서버로드를 최적화하는 것은 듀얼 코어 프로세서가있는 것보다 더 복잡하지 않습니다. 해당 프로그램을 제 시간에 완료 할 수 있도록 더 빠른 프로세서가 필요할 수도 있지만 두 개 이상의 코어가 필요하지 않습니다.
대부분의 시스템은 실제로 정확히 두 개의 활성 스레드로 제한하지 않습니다. 대부분의 서버는 훨씬 더 복잡합니다. 하나의 진짜 문제는 유지 코어의 수를 가능한한 낮기 때문에,그것은 당신에게 돈을 절약하지 않고,너무 낮은 굴욕적인 사용자 경험을 합니다. 서버가 실행하는 코드를 최적화해야 할 수도 있습니다., 때때로,당신은 데이터베이스 쿼리와 같은 것들에 대기에 의해 소비되는 얼마나 많은 프로그램 시간을 결정해야합니다. 그것은 당신이 정말로 당신의 프로세서에 코어 수를 최대 필요가 할 수 있습니다. 병목 현상이있는 서버는 여러 가지 원인을 가질 수 있으며 여러 가지 방법으로 고칠 수 있습니다.
CPU 로드는 어떻습니까?
CPU 부하를 모니터링하고 최적화하는 것은 서버 메모리를 최대한 활용하는 데 중요한 부분입니다. 불행히도 시간이 많이 걸리는 수동 프로세스이기도합니다. 언급했듯이 대부분의 Linux 명령은 15 분 windows 에 대해서만 CPU 부하를 제공합니다., 그것은 좋은 일입니다;당신은 창문이 그보다 훨씬 넓어지기를 원하지 않을 것입니다. 당신은 그(것)들에서 어떤 유용한 정보든지 얻는 곤란한 시간이 있을 것입니다. 그러나 롤링 15 분 기간 동안 CPU 부하를 주시하는 것은 일종의 두통입니다.
다행히도,거기 좋은 도구하 모니터는 이러한 종류의 물건을 위해 당신입니다. 예를 들어 Scalyr 은 일부 로그를 수집하여 CPU 부하를 모니터링 할 수 있습니다. 간단한 숫자 출력물 만 얻지는 않을 것입니다., 대신 시간이 지남에 따라 전체 CPU 부하를 보여주는 멋진 비주얼을 얻을 수 있습니다. 이는 CPU 에서 가장 까다로운 특정 창을 정확히 찾아내는 데 도움이되므로 특히 유용 할 수 있습니다. 서버의 성능을 최적화한다는 것은 높은 수준뿐만 아니라 세부적으로 이해하는 것을 의미합니다.
좋은 시스템 관리자가되는 부분은 모든 방향에서 서버를 이해하는 것을 의미합니다. CPU 부하를 해석하는 방법과이를 최적화하는 방법을 아는 것은 회사의 서버 투자를 극대화하는 핵심 부분입니다., 그렇게하기 전에 서버의 CPU 부하가 실제로 무엇인지 이해해야합니다. 서버 CPU 부하 모니터링을 시작하기 위해 오늘보다 더 좋은 날은 없습니다. 오늘 최적화 계획을 공식화하기 시작할 수 있습니다.
이 게시물은 Eric Boersma 가 작성했습니다. 에릭은 소프트웨어를 개발하고 개발 관리자가 수행한 모든 것 그것에서 보안을에서는 의약품을 쓰는 인텔리전스 소프트웨어에 대해 우리 정부는 건물 국제개발 팀 있습니다., 그는 사랑에 대해 이야기하는 것을 그가 배운 것,길을 따라 즐기는 듣고 학습부터 사람들이 잘됩니다.피>