OS X에서 현재 전력 정보를 검색하는 방법은 무엇입니까?


21

OS X Snow Leopard에서 현재 와트 사용량 정보를 검색하는 방법이 있습니까? 2010 년 중반 iMac을 사용하고 있으므로 배터리 관련 앱만 찾고 있지 않습니다.

OS X에서도 전력 사용량을 모니터링합니까? 전원 코드와 콘센트 사이에 외부 리더를 사용해야합니까?

내가하고있어 대부분의 명령 줄에 관심 / AppleScript로 더 편리한 로깅 및 통계에 대한 솔루션을 기반으로하지만, 나는 대안 열려있어.


@ bmike 와 @ michaelmichael 의 대답은 의심의 여지없이 정확합니다. 여기서 메타 질문 은 PSU에 이미 센서 / 리더가 있으며 "킬 와트 (kill-a-watt)"와 같은 방식으로 작동한다는 것입니다. 그 대답은 "아니오"입니다.

나는 그것이 아마도 습한 꿈일지도 모른다는 것을 알고 있지만, 컴퓨터의 소리를내는 데는 와트 미터가 이상적 일 것입니다. "내가 얼마나 친환경적인지 보아라.


아!

@ Kerri Shotts 가 제안한 iStat Menus 3 전압 및 암페어 통계와 함께 일부 센서 에서 와트 값을 얻습니다 . 그래서 미터가 있지만 프로그래밍 방식으로 액세스 할 수 있습니까?


하사품! 고체 명령 줄 센서 판독 솔루션 또는 매우 좋은 3 추천을 위해 주어집니다 번째의 (최소 통계 및 기록 데이터 도구처럼) 자 소프트웨어.

앞서 언급 한 iStat 메뉴 3에는 다음과 같은 전원 관련 센서가 나열되어 있습니다.

  • 전압 센서 (볼트)
    • AC / DC
    • AC / DC
    • AC / DC 션트
    • CPU
    • CPU 1.8V S0
    • CPU CTT
    • 그래픽 모듈
    • 기억
  • 전류 센서 (암페어)
    • AC / DC
    • CPU
    • CPU VTT
    • 그래픽 모듈
  • 파워 센서 (와트)
    • AC / DC
    • CPU
    • 그래픽 모듈

"센서"상태이지만 @msanford가 언급 한대로 계산 될 수 있습니다. 프로그래밍 방식으로 해당 데이터를 어떻게 얻을 수 있습니까?


Mac은 매우 환경 친화적이며 기기 테스트는 교정 된 테스트 리그가있는 실험실뿐만 아니라 Apple에서도 수행됩니다. 다행스럽게도 설정을 사용하여 내일보다 효율적인 모델을 출시하는 동안 보유한 Mac을 최대화 할 수 있습니다.
bmike

1
PSU가 전류 부하를보고하지 않습니까 (전압을보고하는 것이 확실합니까)? 그렇다면 P = IV 또는 와트 = 전류 (암페어) • 전압 (볼트). 와트 수는 직접 측정되는 것이 아니라 전류와 전압으로 계산 된 것이므로 전압과 전류에 대한 보고서가 이미 있다면 센서가 와트를보고하지는 않을 것입니다. 그것이 도움이된다면 ...
msanford

@msanford 도움이 될 수 있습니다. 누군가 PSU의 판독 값을 읽는 방법을 알려 주면 도움이됩니다.
Jari Keinänen

답변:


21

system_profiler SPPowerDataType가장 관련성이 높은 정보를 제공하는 것 같습니다. 랩탑에서는 전압과 전류를보고하여 전력 소비를 줄 수 있습니다 (mVolts × mAmperes × 10 ^ -6 = Watts). 또한 Wattage도보고하지만 실제로는 Apple의 전원 어댑터에서보고 한 메타 데이터이며 타사 전원 어댑터는 여기에 공백을 표시 할 수 있습니다. 데스크탑에는 충전식 배터리가 없으므로 배터리의 충전 및 방전을 측정하여 전력 소비량을 계산할 방법이 없습니다.

그러나 아직 희망이 있습니다! Apple은 많은 소스 코드를 발표하고 Wattage 또는 Power + mV에 대한 인터넷 검색을 통해 특정 커널 확장이 전력 소비에 대해 쿼리 될 수 있음을 암시합니다. 불행히도, 현재 작업중 인 스크립트를 만들 수는 없지만 가능합니다.


1
나는 그것이 커맨드 라인 인터페이스 인 것을 보았다 System Profiler.app. 안타깝게도 데스크탑에서는 EnergySaver.prefpaneUPS가 설치되어 있는지 여부와 UPS 의 설정 만 표시합니다 .
Jari Keinänen

. 내 rMBP 2015 15 초마다 업데이트 iStat에서 시스템 전체 "값 또한, 나는주의"섹션에서, 암페어 및 전압 배터리 정보는 어느 정도 일정의에 비해 적어도이다 "암페어 존재 0.
요하네스 비트 너

이거 너무 좋아; 짧고 간단합니다. 다운로드하거나 설치할 것이 없습니다. 사람들이 관심이 있다면 나 (또는 ​​다른 사람)가이 명령에서 필요한 필드를 가져와 사용중인 실제 전력량을 추출하는 스크립트 / 명령을 쉽게 채울 수 있습니다.
rinogo

업데이트 : 지정된 명령은 처음 필요할 때 나를 위해 작동했지만 다시 필요할 때 작동하지 않았습니다. 암페어의 이상한 값을 표시합니다. 어쩌면 나는 올바른 장소를 보지 않을 것입니다. 누가 알 겠어 ... ymmv.
rinogo

11

이것은 명령 행 요구 사항을 만족시키지 않지만 iStat 메뉴 3을 사용해보십시오 . 시스템의 모든 센서 (AC / DC 와트, CPU 와트 및 GPU 와트 포함)에 대한 정보 만 제공합니다. 100 % 정확하지는 않지만 APC 배터리의 제한된 제약 조건 내에서 작동하도록 컴퓨터를 조정하는 데 충분합니다.

내 컴퓨터는 2010 iMac이므로 컴퓨터에 따라 작동하거나 작동하지 않을 수 있습니다. 또한 HDD (최소해야 함) 또는 디스플레이와 관련된 특정 전력 판독 값이 표시되지 않습니다 (즉, LCD 밝기를 줄이면 와트 수가 상당히 줄어들므로 총계로 계산됩니다).

적어도 시도해 볼 가치가 있습니다. IIRC에는 무료 버전이 있지만 그만한 가치가있어서 비용을 지불했습니다. 나는 약간의 제어 괴물이므로 메뉴 바에 메모리, 온도, 디스크 활동, 네트워크 활동 등이 있으며 그것을 좋아합니다. :-)


2
파 우수! 이제 질문은 : iStat 메뉴가 어떻게 센서 판독 값을 얻
습니까

8

하드웨어 모니터라는 유료 응용 프로그램이 있습니다.이 응용 프로그램은 전압, 전류 및 와트를 포함하여 Mac에서 사용할 수있는 거의 모든 센서에 액세스 할 수 있습니다. 이 정보를 읽는 명령 줄 유틸리티가 포함되어 있습니다.

작년에 iMac에서 결함이있는 로직 보드를 추적하기 위해 이것을 사용하여 € 7의 가치가 있음을 알았습니다. 여기에는 센서 값을 CSV로 출력하는 기능이 포함되어있어 데이터를 기록하고 시각적으로 표시하는 데 도움이됩니다. PSU 판독을 수행하는지 확실하지 않지만 (atm에있는 컴퓨터에 앱이 없기 때문에) pci, 슬롯, CPU 및 기타 많은 것들을 누르십시오.

소프트웨어는 여기에서 찾을 수 있습니다 : http://www.bresink.com/osx/HardwareMonitor.html

나는이 회사와 전혀 관련이 없으며 도구가 내 진단 병무에 매우 유용하다는 것을 알았습니다.


Lyken이이 답변으로 상을 받았습니다. 정말 놀라운 소프트웨어입니다. 명령 줄 도구, 메뉴 모음 및 전체 앱. 전원 공급 장치 자체가 새로운 Mac에서 모니터링되지 않는 한 총 전력 등급을 제공하지는 않지만 사용 가능한 모든 데이터에 액세스하는 것이 좋습니다.
bmike

최신 업데이트에 대해 죄송하지만 @Lyken은 귀하의 +100에 대한 가치가 있습니다. 하드웨어 모니터가 iStat Menus 3처럼 PSU 전력량을 제공하지 않는 것처럼 +200 전체를 제공하는 것을 망설였습니다. 어떤 이유로 HWM은 CPU A, 4 CPU High Side초 및 MXM Graphics Module. 다양한 응용 프로그램은 그럼에도 불구하고 내가 했던 것 다른 현상금 대답은 만난 것입니다 경우 바람에 답을 수여 자동 반 현상금 수상 규칙을 . 내가 말했듯이, +100은 가치가 있습니다.
Jari Keinänen

예, HWM은 모델별로 센서를 읽으므로 버전에서 사용 가능한 항목에 따라 다릅니다. iStat Menu 3이 모델의 PSU 와트 수도 읽었습니까?
Digitalchild 2016 년

1
불행히도 Hardware Monitor는 2017 년 6 월 19 일 EOL을 발표했습니다. bresink.com/osx/216202/eol.html
walterra

7

IANAEE (저는 전기 기술자가 아님)를 이해하지만 소프트웨어를 통해 컴퓨터의 전력 소비를 정확하게 측정 할 수는 없습니다. 가장 좋은 해결책은 Mac을 Kill-a-Watt 와 같은 장비에 연결하는 것입니다

스크립트 가능한 솔루션과 흥미로운 프로젝트를 찾고 있다면 무선 전력량 모니터링 시스템 또는 " Tweet-a-Watt " 작성에 대한 지침이 있습니다.


7

iStat의 모든 데이터는 ioregistry의 키에서 가져온 것입니다. ioreg를 사용하여 명령 행에서 덤프를 가져올 수 있습니다.

ioreg -w 0 -l

그것은 살펴볼 많은 데이터가 될 것입니다. 다양한 방법으로 조각 할 수 있습니다. 원하는 실제 데이터가 iMac에서 제공된다고 생각하지 않습니다. 시스템은 여러 곳에서 온도를 모니터링하지만 배터리에서 실행되지 않기 때문에 시스템에서 가져 오는 순간 전류를 아는 것이 덜 중요합니다. 아마도 센서 비용이 들지 않습니다.


5

전원 공급 장치에 계량 센서가 없습니다.

로직 보드는 송풍기를 제어하기 위해 여러 곳에서 온도를 측정하고 CPU는 송풍기가 냉각 할 수있는 것보다 따뜻해지면 클럭 속도를 낮추기 위해 온도를 모니터링합니다.

팬 속도와 다양한 온도 센서를 통합하여 예상되는 전력 소비량을 계산하는 데 PHD 논문이 일부 있다고 가정합니다. 계산을 할 수 있으며 약간의 보정을하면 꽤 정확할 수도 있습니다.

실제로 해당 데이터가 노출되거나 기록되지 않으므로 외부 측정이 필요할 수 있습니다. 알맞은 가정 에너지 카운터는 $ 150에서 $ 300 사이입니다.

콘센트를 통해 전력을 측정하는 장치를 빌리거나 구입할 수 있으며 특정 조건에서 Mac이 1 시간 동안 얼마나 많은 전력을 소비하는지 확인하기 위해 테스트를 실행할 수 있습니다.

  • 떨어져서
  • 자다
  • 게으른
  • 다양한 CPU 부하
  • 최대 CPU, 모든 것

그런 다음이를 사용하여 시간이 지남에 따라 사소한 CPU 사용 모니터링과이를 연관 top시킬 수 있습니다.

하드웨어가 어떻게 작동하는지 배우고 멋진 그래프를 얻는 것 외에 다른 데이터로 실제로하고 싶은 일에 달려 있습니다.


2
+ 당신 은 목록에 광고 무한대를 더 추가해야 합니다. 아마도 모든 조건을 교정했을 때쯤에 현재 iMac을 교체해야 할 것입니다. -D 어쩌면 미터가 없으면 외부의 기본 W & kWh 미터 만 사용하면됩니다.
Jari Keinänen

2
:-) 유머 감각이있어서 기쁘다. 필자의 경험에 따르면 맥은 모든 테스트를 최대 전력으로 수행하기 위해 엄격한 테스트를 거친 경우에도 애플이 발표 한 사양보다 20 ~ 25 % 적습니다 .
bmike

1
@bmike 나는 그것이 충분하지 않은 전류를 제공하는 85W 어댑터로 인해 CPU + GPU에 충분히로드 될 때 rMBP가 배터리방전 시키는 것으로 알려져 있습니다.
Steven Lu

1
@stevenlu 최신 2013 년 하드웨어가 여기에서 논의되고있는 2010 년 중반 기술보다 더 강하게 밀려나더라도 놀라지 않을 것입니다. 마찬가지로 10.8의 전원 관리는 10.6보다 더 정교합니다. 또한 내부 배터리를 열심히 사용합니다. 내 경험으로는 AC 어댑터에서 그리 많지 않습니다. 새로운 USB-C PD 모델조차도 내부 소비 / 버퍼 + 외부 소비 감소 패턴을 따릅니다
bmike

3

system_profiler 출력을 기반으로 작은 스크립트를 만들었습니다. 주어진 전압과 암페어를 사용하여 전력량을 계산합니다.

powerstat() {
    b=$(system_profiler SPPowerDataType)
    amp=$(echo "$b" | grep 'Amperage (mA):' | cut -d ':' -f 2 | xargs)
    volt=$(echo "$b" | grep 'Voltage (mV):' | cut -d ':' -f 2 | xargs)
    power=$(($amp * $volt / 1000))
    echo "$b" | grep --color=never -A 1 'Battery Information:'
    echo "$b" | grep --color=never -A 1 'Amperage (mA)'
    echo "      Total Power (mW): $power"
    echo ""
    echo "$b" | grep --color=never -A 99 'AC Charger Information:'
}

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

$ powerstat
    Battery Information:

      Amperage (mA): -552
      Voltage (mV): 12794
      Total Power (mW): -7062

    AC Charger Information:

      Connected: No
      Charging: No

충전 할 때 :

$ powerstat
    Battery Information:

      Amperage (mA): 1545
      Voltage (mV): 12850
      Total Power (mW): 19853

    AC Charger Information:

      Connected: Yes
      Wattage (W): 60
      Charging: No

2
// Build with: gcc psudata.cc -o psudata -framework IOKit
#include <stdio.h>
#include <string.h>
#include <IOKit/IOKitLib.h>

typedef struct {
  uint32_t key;
  char ignored[24];
  uint32_t size;
  char ignored2[10];
  char cmd;
  char ignored3[5];
  float val;
  char ignored4[28];
} smc_t;

int main(void) {
  mach_port_t mp;
  CFMutableDictionaryRef d;
  io_iterator_t it;
  io_object_t svc;
  io_connect_t ioc;
  smc_t req, resp;
  size_t sz = sizeof(resp);
  uint32_t vk  = ('V' << 24) + ('D' << 16) + ('0' << 8) + 'R';
  uint32_t ik  = ('I' << 24) + ('D' << 16) + ('0' << 8) + 'R';
  float v, i;

  IOMasterPort(MACH_PORT_NULL, &mp);
  d = IOServiceMatching("AppleSMC");
  IOServiceGetMatchingServices(mp, d, &it);
  svc = IOIteratorNext(it);
  IOObjectRelease(it);
  IOServiceOpen(svc, mach_task_self(), 0, &ioc);
  IOObjectRelease(svc);
  memset(&req, 0, sizeof(smc_t));
  memset(&resp, 0, sizeof(smc_t));
  req.cmd = 5;
  req.size = 4;
  req.key = vk;
  IOConnectCallStructMethod(ioc, 2, &req, sizeof(req), &resp, &sz);
  v = resp.val;
  req.key = ik;
  IOConnectCallStructMethod(ioc, 2, &req, sizeof(req), &resp, &sz);
  i = resp.val;
  IOServiceClose(ioc);

  printf("%fV %fA %fW\n", v, i, v*i);
  return 0;
}

실제로 잘못된 질문에 대답했습니다. 죄송합니다. USB-C 충전기에서 충전 전압 및 전류를 검색 한 결과 여기에 왔습니다. 여기 요 그러나 그것은 실제로 당신이 원하는 것이 아닙니다. 사용 데이터를 유추하기 위해 DC 입력 데이터 (이것)를 배터리 데이터 (다른 답변)와 결합 할 수 있습니다.
Luyer

2
system_profiler SPPowerDataType | grep Wattage

MacBook Pro (15-inch, 2016)에서 나를 위해 속임수를 씁니다!


2
이것은 현재 전력 소비가 아닌 AC 어댑터의 전력량을보고합니다. 상황 :system_profiler SPPowerDataType | grep -C4 Wattage
Edward Anderson

2

다음은 ioreg'grep'없이 대부분의 전원 정보를 인쇄 하는 명령입니다. 내 컴퓨터의 system_profiler보다 훨씬 빠르게 반환되므로 백그라운드에서 스크립트를 작성하거나 실행하는 데 더 적합합니다.

ioreg -w 0 -f -r -c AppleSmartBattery

1

저는 MacBook 10.6.8에 있고 ioreg -l | grep LegacyBatteryInfo나를 위해 일했습니다.

나는 이전에 시도했다

ioreg -l | grep LegacyBatteryInfo | \
    cut -d '{' -f 2 | tr -d \} | tr ',' '=' | \
    awk -F'=' '{print ($2*$10/10^22)}' 

그리고 0을 반환했습니다.

Apple의 Dev 라이브러리에서 솔루션이 있습니까?

파워 미터에서 밖을 보지 않겠습니까? 판독 값을 기록한 다음 일정하고 일반적인 % CPU 사용량과 관련이 있습니다. 그러면 근사값을 얻을 수 있습니다.


0

10.7의 경우 터미널에서 작동해야한다고 생각합니다.

ioreg -l | grep LegacyBatteryInfo | cut -d '{' -f 2 | tr -d \} | tr ',' '=' | awk -F'=' '{print ($2*$10/10^22)}'


2
ioreg -l | grep LegacyBatteryInfoiMac에서는 아무 것도 반환하지 않습니다.
Jari Keinänen
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.