Buộc ép buộc vào ban đêm


23

Máy tính để bàn của tôi ở lại tất cả các thời gian. Nó hoạt động như một máy chủ và cũng thực hiện các nhiệm vụ gia đình bán thiết yếu khác. Ban ngày nó sử dụng cài đặt CPU OnDemand. Điều này về cơ bản chỉ là quy mô tần số CPU vì nó cần nó và điều này thực sự hoạt động tốt với tôi.

Vào ban đêm, nó bay xung quanh. Tất nhiên, hầu hết thời gian nó không hoạt động ở công suất thấp, nhưng đôi khi, nó sẽ tăng tốc để làm điều gì đó. Tôi thà ở lại trên PowerSave và các nhiệm vụ buộc phải mất thêm một chút thời gian để hoàn thành.

Ngoài ra, tôi có thẻ Nvidia (GTX 580) có thể tiêu thụ lượng năng lượng tương đương với một ngôi làng nhỏ ở châu Phi sử dụng trong một năm khi nó muốn (trừng mắt với Minecraft). Vì những lý do không xác định (chắc chắn có điều gì đó xảy ra trên máy tính để bàn), điều này nổi lên, những chiếc quạt phát ra âm thanh như đang sạc pin để bắn tia laser vào không gian. Vào ban đêm, tôi muốn ép xung thẻ càng xa.

Tôi đã xem xét một kịch bản cron chạy gốc đơn giản để đẩy chúng đi qua nhưng giờ làm việc của tôi là khác nhau. Tuần trước tôi có một tuần làm việc gần 70 giờ vì vậy tôi dậy rất sớm và vẫn dậy rất muộn, mỗi ngày. Nếu hệ thống bấm còi ở chế độ siêu ngầm, tôi sẽ rất tức giận. Có điều gì tôi có thể làm để nói, "Underclock if:

  • Đó là từ 10 giờ tối đến 9 giờ sáng
  • Không có bất kỳ hoạt động chuột / bàn phím nào trong 10 phút
  • Không có phim nào đang phát

Nếu một trong những điều kiện đó không đúng, thì phần dưới cần phải hoàn nguyên ngay lập tức . Tôi không muốn chờ đợi một cron-script xuất hiện để đánh thức máy tính dậy từ giấc ngủ của nó. Tương tự như vậy, ngay khi tất cả những điều đó trở thành sự thật, nó sẽ quay trở lại giấc ngủ.

Những lựa chọn của tôi là gì?


Bạn đang dùng phiên bản nào? Cho đến khi tôi có thể về nhà với máy của mình, tôi sẽ đề cập đến việc bạn có thể kết nối các sự kiện bằng cách sử dụng các sự kiện acpi hoặc gói công cụ pm.
quê hương

Câu trả lời:


19

Đây là một chương trình làm những gì bạn muốn:

#!/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()

Lưu ý sở thích của bạn:

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

Tôi đang sử dụng pulseaudio để tìm hiểu xem phim có đang phát hay không. Điều này cũng ảnh hưởng đến âm nhạc.


5

Bạn có thể buộc mở rộng quy mô cpu của mình bằng cách sử dụng:

cpufreq-selector -f [frequency]

Có một vài tùy chọn khác (ví dụ như cpu cụ thể hoặc chọn quản trị thay vì tốc độ) Điều này giả định rằng bo mạch chủ / cpu của bạn cho phép Ubuntu kiểm soát tỷ lệ theo cách thủ công (rõ ràng điều này không phải luôn luôn như vậy.)

Phần còn lại có thể được áp dụng bằng cách sử dụng tập lệnh, tuy nhiên bạn khá khắt khe về nó ^ _ ^. Nếu bạn cần một phản hồi tức thì mà tôi nghĩ rằng bạn phải có một cái gì đó định kỳ thăm dò hệ thống của bạn. Từ tôi, một số điều hạn chế, kiến ​​thức không có gì công bố các điều kiện bạn đã chỉ định.

Tuy nhiên, một nơi để bắt đầu điều tra là một trình bảo vệ màn hình. Điều này bật sau một khoảng thời gian không hoạt động (cũng có thể đúng vào lúc 10 giờ tối, 9 giờ sáng) và có thể bị ức chế bởi người chơi phim. Nếu bạn đã tạo một trình bảo vệ màn hình thu nhỏ CPU khi khởi tạo và khôi phục nó khi thức dậy, thì bạn sẽ có những gì bạn muốn.

Thật không may, theo như tôi có thể đưa bạn, không biết gì về trình bảo vệ màn hình và cách chúng hoạt động.

Chúc may mắn.


4

Bạn có thể không thực sự tiết kiệm nhiều năng lượng hơn bằng cách sử dụng các thống đốc powersave .

Tùy thuộc vào khối lượng công việc của bạn, hoàn thành một mục công việc một cách nhanh chóng bằng cách tiêu tốn thêm một chút năng lượng và sau đó trở lại trạng thái ngủ sâu thay vì làm việc trong thời gian dài với mức tiêu thụ điện năng giảm có thể cho kết quả tốt hơn.

Tùy thuộc vào ứng dụng của bạn, cũng có thể đáng để cài đặt một máy chủ chuyên dụng với yêu cầu năng lượng thấp hơn và nguồn cung cấp năng lượng đúng cho tải đó, và chỉ cần tắt máy tính để bàn vào ban đêm.


1
Đôi khi bạn chỉ muốn máy tính của mình giữ im lặng, đặc biệt là vào ban đêm ..
Maxime R.

Nếu bạn muốn yên tĩnh, không để hệ thống chạy hoàn toàn là cách tốt nhất. Tôi có một máy khá to cho công việc hàng ngày của tôi và một máy chủ trong tủ chổi cho các tác vụ nền, máy sau có nguồn cung cấp năng lượng nhỏ hơn (=> ít lãng phí nhiệt), CPU (=> ít lãng phí nhiệt), card đồ họa (bạn nhận được ý tưởng), ... và sử dụng thống đốc ondemand . Tôi không có tiếng ồn trong phòng ngủ vào ban đêm và mức tiêu thụ điện cho máy chủ là khoảng một phần ba so với máy tính để bàn ăn khi không sử dụng, vì vậy tôi vẫn tiết kiệm tiền.
Simon Richter

Chắc chắn, tôi đồng ý, nhưng trong trường hợp cụ thể này, Oli sử dụng cùng một máy như máy chủ và máy tính để bàn.
Maxime R.

3

powernap là một công cụ hữu ích cho những thứ như thế này, điều tuyệt vời là nó nhìn vào bảng quy trình của bạn để xem hệ thống của bạn có bận không, không phải là thời gian nhàn rỗi của bạn trên bàn phím.

Bạn đã đo sức mạnh cho mỗi thống đốc? Giống như Simon, tôi nghi ngờ rằng điều đó sẽ tăng thêm một lượng đáng kể so với việc hoàn thành công việc nhanh hơn hoặc cố gắng điều chỉnh một cái gì đó như thẻ video quái vật.

powernap có thể được cấu hình để chỉ thực hiện chuyển đổi thống đốc hoặc có lẽ nếu phần cứng của bạn hỗ trợ nó sử dụng tính năng Wake On Lan (WOL) để ngủ trưa thực sự vào giữa đêm cho đến khi cần.


1

Theo như CPU ​​đi, bạn chỉ có thể chuyển đổi bộ điều chỉnh sang powersave với, ví dụ, applet màn hình mở rộng tần số cpu. Thẻ video là một câu chuyện khác. Tôi biết thẻ ATI của tôi có một nút trong / sys để điều chỉnh hiệu suất giữa thấp, trung bình và cao, nhưng việc thay đổi chúng dường như không tạo ra bất kỳ sự khác biệt nào và thường khiến video không ổn định.


1

cpufreqd được thiết kế cho vấn đề cụ thể mà bạn gặp phải, bạn có thể tạo hồ sơ ngày và đêm và đặt quy tắc dựa trên các chương trình đang chạy.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.