밤에는 강제로 언더 클로킹


23

내 데스크탑은 항상 켜져 있습니다. 서버 역할을하며 다른 반 필수 가정 작업도 수행합니다. 낮에는 OnDemand CPU 설정을 사용합니다. 이것은 본질적으로 CPU 주파수를 필요에 따라 확장하며 실제로는 잘 작동합니다.

밤에는 주위가 its니다. 물론 대부분의 경우 저전력으로 공전하지만 때로는 무언가를하기 위해 증가합니다. 차라리 PowerSave를 유지하고 작업을 완료하는 데 조금 더 오래 걸렸습니다.

또한 Nvidia 카드 (GTX 580)를 사용하면 1 년 동안 작은 아프리카 마을에서 사용하는 것과 같은 양의 전력을 소비 할 수 있습니다 (Minecraft에서 눈부심). 알려지지 않은 이유로 (의심 할 여지없이 데스크탑에서 발생하는) 팬이 마치 레이저를 우주로 발사하기 위해 충전하는 것처럼 들립니다. 밤에는 카드가 멈출 때까지 시계를 내리고 싶습니다.

나는 이것을 실행하기 위해 간단한 루트 실행 크론 스크립트를 고려했지만 근무 시간은 다양합니다. 지난 주에 일주일에 거의 70 시간이 걸렸으므로 매일 매일 일찍 일어나서 늦게까지 일했습니다. 시스템이 수퍼-언 클럭 모드에서 작동 중이라면 나는 분노했을 것입니다. "언더 클록 :

  • 오후 10시에서 오전 9시 사이입니다.
  • 10 분 동안 마우스 / 키보드 활동이 없습니다.
  • 영화가 재생되지 않습니다

이러한 조건 중 하나에 해당되지 않는 경우 언더 클럭은 즉시 복귀해야합니다 . 나는 컴퓨터가 깨어있는 곳에서 깨어날 때 cron-script가 나타날 때까지 기다리고 싶지 않습니다. 마찬가지로, 모든 것이 사실이 되 자마자 다시 잠 들어야합니다.

내 옵션은 무엇입니까?


현재 어떤 버전입니까? 컴퓨터로 돌아갈 때까지 acpi 이벤트 또는 pm-tools 패키지를 사용하여 이벤트를 연결할 수 있어야합니다.
hometoast 2016

답변:


19

다음은 원하는 것을 수행하는 프로그램입니다.

#!/usr/bin/env python
# coding: utf8

import time
import sys
import commands


USER = commands.getoutput("cat /var/log/auth.log | grep " +
    sys.argv[0]).split("sudo:")[1].split()[0].strip()


def is_idle():
    return int(commands.getoutput("xprintidle")) >= 10 * 60 * 1000

def is_night():
    return time.localtime().tm_hour in (22, 23, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9)

def is_stumm():
    return "RUNNING" not in commands.getoutput(("sudo -u %s pacmd " +
        "list-sinks | grep RUNNING") % USER)


def main():
    powersave = False
    while 1:
        if is_idle() and is_night() and is_stumm():
            if not powersave:
                print "going into powersave mode"
                commands.getoutput("echo powersave > " +
                    "/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor")
                powersave = True
        else:
            if powersave:
                print "going into ondemand mode"
                commands.getoutput("echo ondemand > " +
                    "/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor")
                powersave = False
        time.sleep(0.5)

if __name__ == '__main__':
    assert commands.getstatusoutput("xprintidle")[0] == 0, (
        "you need to `sudo apt-get install xprintidle`")
    assert commands.getoutput("whoami") == "root", (
        "you need to be root to run this program")
    main()

환경 설정을 참고하십시오.

  • ... >= 10 * 60 * 1000
  • ... tm_hour in (22, 23, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
  • "RUNNING" not in ...

영화가 재생 중인지 알기 위해 pulseaudio를 사용하고 있습니다. 이것은 음악에도 영향을 미칩니다.


5

다음을 사용하여 CPU 스케일링을 강제 할 수 있습니다.

cpufreq-selector -f [frequency]

몇 가지 옵션이 더 있습니다 (예 : 특정 CPU 또는 속도가 아닌 거버넌스 선택) 이것은 마더 보드 / CPU가 Ubuntu가 수동으로 스케일링을 제어 할 수 있다고 가정합니다 (분명히 항상 그런 것은 아닙니다).

나머지는 스크립트를 사용하여 적용 할 수 있지만 ^ _ ^을 요구하고 있습니다. 즉각적인 응답이 필요한 경우 주기적으로 시스템을 폴링하는 것이 필요하다고 생각합니다. 제한적인 지식으로는 내가 지정한 조건을 알리는 것이 없습니다.

그러나 조사를 시작하는 곳은 화면 보호기입니다. 설정된 비활성 시간이 지나면 (오후 10시에서 오전 9 시까 지) 켜고 영화 플레이어에 의해 금지 될 수 있습니다. 초기화 할 때 CPU를 축소 한 화면 보호기를 만든 다음 깨어 나면 복원하면 원하는 것을 얻을 수 있습니다.

안타깝게도 스크린 세이버와 작동 방식에 대해서는 전혀 몰랐습니다.

행운을 빕니다.


4

절전 관리자 를 사용하여 실제로 더 많은 전력을 절약하지 못할 수 있습니다 .

작업 부하에 따라 전력 소비를 줄이면서 장시간 작업하지 않고 약간의 전력을 소비 한 다음 작업 시간을 늦추어 다시 절전 모드로 전환하면 더 나은 결과를 얻을 수 있습니다.

응용 프로그램에 따라 더 낮은 전력 요구 사항과 해당 부하에 적합한 크기의 전원 공급 장치를 갖춘 전용 서버를 설치하고 밤에는 데스크톱을 끄는 것이 좋습니다.


1
때로는 컴퓨터가 특히 밤에 조용히 유지되기를 원할 수도 있습니다.
Maxime R.

조용히하려면 시스템을 전혀 실행하지 않는 것이 가장 좋습니다. 나는 일상 업무를위한 꽤 큰 기계를 가지고 있고 배경 작업을 위해 빗자루 옷장에 서버가 있고, 후자는 더 작은 전원 공급 장치 (=> 폐열 감소), CPU (=> 폐열 감소), 그래픽 카드 (당신은 얻는다) 아이디어), ... 및 주문형 총재를 사용합니다 . 밤에는 침실에서 소음이 전혀 없으며 서버의 전력 소비는 데스크톱이 유휴 상태 일 때 먹는 것의 1/3 정도이므로 여전히 비용을 절약합니다.
Simon Richter

물론 동의합니다. 그러나이 경우 Oli는 서버 및 데스크탑과 동일한 시스템을 사용합니다.
Maxime R.

3

powernap 은 이와 같은 작업을위한 편리한 도구입니다. 좋은 점은 프로세스 테이블을보고 키보드의 유휴 시간이 아니라 시스템이 사용 중인지 확인하는 것입니다.

각 주지사의 절전 효과를 측정 했습니까? 사이먼처럼 나는 그것이 작업을 더 빨리 끝내거나 몬스터 비디오 카드와 같은 것을 조정하려고하는 것에 비해 상당한 양을 추가 할 것이라는 것에 회의적입니다.

거버너 스위치를 실행하도록 powernap을 구성하거나 하드웨어가 지원하는 경우 WOL (Wake On Lan) 기능을 사용하여 한밤중에 필요할 때까지 실제 낮잠을 자십시오.


1

CPU가 작동하는 한 CPU 주파수 스케일링 모니터 애플릿을 사용하여 조정기를 절전 모드로 전환하기 만하면됩니다. 비디오 카드는 또 다른 이야기입니다. 저의 ATI 카드에는 / sys에 노브가있어 낮음, 중간, 높음 사이의 성능을 조절할 수 있지만, 이들을 조정해도 차이가없는 것 같으며 종종 비디오가 불안정 해집니다.


1

cpufreqd는 당신이 겪고있는 특정 문제에 맞게 설계되었으며, 낮과 밤의 프로필을 만들고 프로그램 실행에 따라 규칙을 설정할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.