왜apt-get
아니요CPU, 디스크 또는 네트워크를 100% 사용합니까? 아니면 100%에 가깝습니까? 느린 시스템(Raspberry Pi 2+)에서도 CPU 로드는 기껏해야 30%에 불과합니다. 인위적으로 제한하는 건지, 아니면 최대화해야 하는 건지 생각 중이에요.무엇작동 중일 때...또는 실제보다 더 빠르게 작업을 수행할 수 있어야 합니다.
편집: 방금 패널의 CPU/디스크/네트워크 모니터와 Ubuntu MATE의 시스템 모니터 앱을 통해 대략적인 측정을 수행했습니다.
왜 내가 틀렸는지 설명해주세요. :-)
apt-get
업데이트: 업데이트가 필요하다는 점(업스트림/공급자 대역폭에 의해 제한될 수 있음)을 이해합니다 . 그러나 일단 "압축 풀기"와 같은 작업이 수행되면 CPU 사용량은 최소한우수한(가장 크지 않은 경우). SSD를 메인 드라이브로 사용하고 램디스크를 /tmp로 사용하는 꽤 괜찮은 가정용 워크스테이션에서는 그렇지 않습니다.
아니면 좀 더 자세히 살펴봐야 할 것 같습니다.
답변1
애플리케이션이 다음 조건을 충족하는 경우에만 CPU가 최대화됩니다.CPU 한도. 애플리케이션은 다음과 같습니다.CPU 한도모든 데이터를 빠르게 얻을 수 있다면 프로세서가 데이터를 처리하기만 하면 됩니다.
apt-get
, 반면에IO 바인딩. 즉, 데이터를 상당히 빠르게 처리할 수 있지만 디스크나 네트워크에서 데이터를 로드하는 데는 시간이 걸립니다. 이 시간 동안 프로세서는 다른 작업을 수행하거나 다른 프로세스에 필요하지 않은 경우 유휴 상태로 있을 수 있습니다.
일반적으로 모든 IO 요청(디스크, 네트워크)은 느리며 애플리케이션 스레드가 요청할 때마다 커널은 데이터가 커널에 로드될 때까지 프로세서에서 이를 제거합니다(=이러한 IO 요청을 호출함)차단 요청).
답변2
느린 시스템(Raspberry Pi 2+)에서도 CPU 로드는 기껏해야 30%에 불과합니다.
Raspberry Pi 2+에는 4개의 코어가 있습니다. 일부 모니터링 도구의 경우 100% 사용률은 100%로 사용되는 모든 코어에 해당합니다. 4코드 프로세서에 코어가 하나만 사용되는 경우 CPU 로드는 25%입니다. 언급한 30% CPU 로드는 일부 프로세스가 다른 코어에서 실행되는 동안 하나의 코어가 100% 사용되는 것과 관련됩니다.
(100% on one core out of 4 = 100 / 4 = 25%) + some processes ≃ 30%
apt-get
멀티 스레드가 아니기 때문에 전체 CPU 리소스의 25%에 해당하는 프로세서를 두 개 이상 사용하지 않습니다.
다음은 8코어(4코어,하이퍼스레딩) Ubuntu를 실행하는 머신에서 cat /dev/zero > /dev/null
하나의 코어를 완전히 활용하는 무한 프로세스를 생성하기 위해 이 명령을 사용하여 스레드를 시작합니다.
자, 그래프를 보면htop
Avg
, 평균 로드( bar)는 12.7%
100%의 코어 사용률에 해당하며 이는 전체 CPU 리소스의 1/8이기도 함을 알 수 있습니다 .
(100% = 100 / 8 = 12.5%) + some background processes ≃ 12.7%.
또한 명령은 모든 코어가 아닌 하나의 코어를 기준으로 하기 때문에 100%
해당 열에 값이 있습니다.CPU%
답변3
실제로 IO %를 측정하지 않는 것 같습니다. 아직 Linux IO% 위젯을 보지 못했습니다. (저는 Windows 10의 작업 관리자가 부럽습니다 :). 명령을 사용하여 확인 iotop
하면 100% IO가 표시됩니다.
top
100% 를 AL에 설명된 코어 수로 나눈 값에 대해 user
++ 전체에서 100%가 표시되어야 합니다 . 100% 도움 system
이 된다고 말할 수는 없지만 매우 유용한 만능 학습 도구가 될 수 있습니다.iowait
top
처리량"임의 IO"라고도 알려진 많은 작은 파일의 압축을 풀기 때문에 최대값보다 낮습니다. 일부 디스크 동기화/캐시 플러시도 있지만 2010년 이후에는 Linux에 설치된 각 패키지가 소수에 불과했습니다. (이전에는 파일당 하나였습니다.).
답변4
실제로 IO/네트워크 요청은 CPU 작업에 비해 정말 느립니다. 이는 네트워크 카드가 데이터를 가져오는 동안 또는 디스크가 해당 데이터를 쓰는 동안 CPU는 (어쨌든 이 프로세스를 위해) 아무 작업도 수행하지 않음을 의미합니다.
하드 드라이브가 네트워크 연결보다 빠른 경우(아마도 사실일 것임) 수신하는 것보다 더 많이 쓰지는 않습니다.
마지막으로, 네트워크 비율은 가능한 가장 큰 네트워크에 해당합니다.카드연결하지 말고 사용하세요. 따라서 1Gb/s 네트워크 어댑터가 있을 수 있지만 실제로 해당 대역폭으로 인터넷에 연결될 가능성은 거의 없습니다.