Apakah Mac OS X mendukung hibernasi?

40

Pada Windows, Anda dapat melakukan hibernasi pada komputer Anda, sehingga ia memulai jauh lebih cepat sambil mengonsumsi energi nol saat "hibernasi".

Saya melihat opsi untuk Tidur di Mac mini saya tetapi tidak hibernasi. Apakah Mac mendukung hibernasi?

Saya di Leopard.

AngryHacker
sumber

Jawaban:

34

OS X hanya memiliki satu opsi "tidur". Anda tidak dapat mengubah namanya, tetapi untuk mengubah perilakunya, saya menggunakan versi lama SmartSleep pada mini Mac (meskipun dalam mode "tidur & hibernasi" seperti MacBook). Ini berfungsi untuk mini, meskipun situs web hanya merujuk ke MacBook.

(SmartSleep masih bebas ketika saya menulis ini pada tahun 2009.)

Saya kadang-kadang mengeluh tentang perangkat keras yang tidak dihapus dengan benar (tapi OS X tidak pernah memberi tahu saya perangkat keras apa , dan disk USB Time Machine saya tampak baik-baik saja - saya harus mengintip ke dalam log suatu hari, dan saya menganggap ini terkait dengan OS X, tidak untuk SmartSleep).

Saya telah dengan cepat menguji SmartSleep "hibernate only" pada mini itu (Intel; menjalankan 10.5), dan sepertinya berfungsi juga. Melakukan tes ini, saya perhatikan bahwa setelah tampilan menjadi hitam, lampu daya mulai berdenyut (seperti untuk menunjukkan tidur daripada hibernasi) selama beberapa detik. Mungkin masih menulis RAM ke disk saat itu. (Sampai sekarang, saya selalu berpikir bahwa di MacBook saya denyutan menunjukkan bahwa semua sudah dilakukan. Tapi sekarang saya berpikir bahwa, dalam mode sleep mana pun yang digunakan, seseorang mungkin tidak boleh mencabut steker daya terlalu cepat). Setelah beberapa saat, itu benar-benar mati.

Pada 2006, Macworld menjelaskan cara mencapai hal yang sama tanpa panel preferensi SmartSleep. Untuk memeriksa pengaturan saat ini:

pmset -g | grep hibernatemode

Menurut artikel lama Macworld hal berikut ini berlaku, tetapi pastikan untuk membaca jawaban Lauri yang menunjukkan bahwa saat ini hanya 0, 3 dan 25 yang harus digunakan sebagai gantinya :

  • 0 - Mode tidur gaya lama, dengan RAM aktif saat tidur, tidur aman dinonaktifkan, dan bangun sangat cepat.
  • 1 - Mode Hibernasi, dengan isi RAM yang ditulis ke disk, sistem benar-benar mati ketika "tidur," dan lebih lambat bangun, karena membaca isi RAM dari hard drive.
  • 3 - Mode default pada mesin diperkenalkan sejak sekitar musim gugur 2005. RAM dinyalakan saat tidur, tetapi konten RAM juga ditulis ke disk sebelum tidur. Jika kehilangan daya total, sistem memasuki mode hibernasi secara otomatis.
  • 5 - Ini sama dengan mode 1, tetapi ini untuk mereka yang menggunakan memori virtual aman (di System Preferences »Security).
  • 7 - Ini sama dengan mode 3, tetapi bagi mereka yang menggunakan memori virtual aman.

Dan angka yang sama dapat digunakan untuk mengubah pengaturan mode tidur:

sudo pmset -s hibernatemode 1
Arjan
sumber
11

Saya menulis sebuah skrip yang akan memungkinkan Anda memasuki hibernasi segera (tanpa mengubah pengaturan Anda secara permanen). Saya merasa cukup berguna, karena saya suka pengaturan default, tetapi ingin masuk hibernasi secara paksa ketika di jalan. Mungkin orang lain juga akan merasa berguna ;-)

#!/bin/bash

# Utility to force your mac immediately into hibernation mode/suspend to disk,
# thus conserving battery considerably (at the cost of slower startup)
# @date 2012-02-10
# @author Carl-Erik Kopseng. Contact at oligofren.wordpress.com

# must be run as root by using sudo or to avoid entering the password, change the pmset
# executable settings by entering
# sudo chmod +s /usr/bin/pmset
# sudo chmod +s /sbin/shutdown

MODE_BACKUP=/tmp/hibernate_mode.bak
SUSPEND_TO_DISK=25 #see man pmset

display_settings() {
    echo "Current settings: " $(pmset -g | grep hibernatemode)
}

save_settings() {
    echo "saving settings"
    pmset -g | grep hibernatemode | awk '{print $2}' > $MODE_BACKUP
}

restore_settings() {
    echo "restoring settings"
    pmset -a hibernatemode $(cat $MODE_BACKUP)
}

set_only_disk_hibernate() {
    echo "changing settings to only suspend to disk (slow, but does not use battery)"
    pmset -a hibernatemode $SUSPEND_TO_DISK
}

hibernate() {
    echo "going into hibernation"
    shutdown -s now
}

save_settings
set_only_disk_hibernate && hibernate
restore_settings

Menambahkan ke Bilah Menu

Jika Anda ingin menjalankan skrip ini dari Bilah Menu ("systray"), saya akan:

  1. Letakkan skrip ini di lokasi yang sesuai (seperti /usr/local/sbin/).
  2. Buat AppleScript yang hanya memanggil skrip ini. Sebut saja "Hibernate"
  3. Tambahkan skrip apel Anda sebagai ikon di Bilah Menu

Sekarang Anda dapat memicu skrip dengan mengklik Menu Bar-> AppleScripts-> Hibernate

oligofren
sumber
1
tolong, buat versi systray :)
DataGreed
Tolong buat versi systray.
qed
Hai, terima kasih atas komentarnya. Sayangnya, MacBook Pro baru yang saya dapatkan di tahun 2013 memiliki kinerja siaga yang jauh lebih baik daripada mac saya sebelumnya, dan membuat masa pakai baterainya jauh lebih baik. Jadi sayangnya ada sedikit insentif bagi saya untuk terus maju dan belajar Cocoa untuk membuat versi systray lagi. Saya akan menghapus kalimat itu sekarang.
oligofren
Ini sangat menarik, bagaimana cara kerjanya? Tidak shutdown -s nowsegera berlaku?
SilverWolf - Pasang kembali Monica
1
@leetbacoon menambahkan instruksi untuk menambahkan ini ke Menu Bar. Saya belum memiliki Mac dalam beberapa tahun, jadi saya tidak bisa menempelkan tangkapan layar apa pun ...
oligofren
9

Halaman manual pmset juga merekomendasikan menggunakan 25bukan 1.

0000 1000 (bit 3) mendorong pager dinamis untuk mengeluarkan halaman yang tidak aktif sebelum hibernasi, untuk jejak memori yang lebih kecil.

0001 0000 (bit 4) mendorong pager dinamis untuk keluar lebih agresif sebelum hibernasi, untuk jejak memori yang lebih kecil.

Kami tidak menyarankan mengubah pengaturan hibernasi. Perubahan apa pun yang Anda lakukan tidak didukung. Jika Anda tetap memilih untuk melakukannya, kami sarankan untuk menggunakan salah satu dari tiga pengaturan ini. Demi Anda dan saya, jangan gunakan yang lain 0, 3, atau 25.

[...]

hibernatemode = 25 (biner 0001 1001) hanya dapat disetel melalui pmset. Sistem akan menyimpan salinan memori ke penyimpanan persisten (disk), dan akan menghapus daya ke memori. Sistem akan memulihkan dari disk image. Jika Anda ingin "hibernasi" - tidur lebih lambat, bangun lebih lambat, dan masa pakai baterai lebih baik, Anda harus menggunakan pengaturan ini.

Beberapa laptop sekarang memasuki mode hibernasi ( mode siaga ) setelah sekitar satu jam tidur normal jika:

  • Power Nap tidak diaktifkan (jadi tidak secara default)
  • Komputer menggunakan daya baterai
  • Komputer tidak terhubung ke perangkat USB atau layar eksternal dan tidak dipasangkan dengan perangkat Bluetooth

Laptop, Mac mini dan iMac menggunakan sekitar 0,2-0,4 W saat mati atau hibernasi dan 0,8-1,4 W dalam mode tidur. Hibernasi (dan mode hibernasi + tidur yang digunakan laptop secara default) juga dapat mengurangi masa pakai drive .

Lri
sumber
6

Dan untuk OS X Lion ini berfungsi lebih baik untuk Hibernasi

sudo pmset -sebuah hibernationmode 25

dari

sudo pmset -sebuah hibernationmode 1

sebagai hibernationmode 1 dapat menyebabkan crash karena suatu alasan.

Willem
sumber
Apa sebenarnya yang diperjuangkan 25?
qed
25 adalah biner untuk 0001 1001 yang berarti bahwa bit 4, 3 dan 0 diatur (tiga 1: s). Ketiga bit itu memberi tahu komputer Anda hal-hal yang berbeda. Bit 0 (0000 0001) memberi tahu komputer Anda untuk mengaktifkan hibernasi (yang berarti menghemat memori ke disk sebelum dimatikan). Bit 3 (0000 1000) memberi tahu komputer Anda untuk membersihkan memori sampah lama sebelum menyimpannya ke disk (untuk membuatnya harus menyimpan lebih sedikit barang ke disk). Bit 4 (0001 0000) memberi tahu komputer Anda untuk menjadi lebih agresif saat membersihkan memori (memungkinkannya untuk menyimpan lebih sedikit barang ke disk).
Willem
5

Untuk jawaban yang mengandalkan mengutak-atik 'hibernatemode' melalui pmset, penting untuk dicatat bahwa opsi 'force' pada pmset membuat perubahan sementara. Pengaturan tidak akan diingat ketika sistem bangun dari hibernasi. Sebagai contoh:

pmset -a hibernatemode 25 force

Akan mengubah mode hibernasi untuk mewakili hibernasi tradisional (yaitu status sistem ditulis ke disk dan daya dihilangkan) tetapi hanya sampai waktu berikutnya sistem dihidupkan atau pengaturan dibaca dari disk ( pmset touch).

Menggunakan opsi paksa menghindari kebutuhan untuk menyimpan dan mengembalikan pengaturan hibernatemode saat ini.

pengguna210274
sumber
Tip yang bagus! Anda dapat mengedit jawaban saya jika mau repot-repot :)
oligofren
3

ya. ini disebut tidur yang aman. Cara termudah untuk mendapatkannya adalah dengan menggunakan widget tidur nyenyak .

yanokwa
sumber
2
Saya benci widget dengan hasrat. Apakah ada sesuatu yang bukan widget?
AngryHacker
1
Bagi pemilik laptop cara termudah adalah dengan menutup penutupnya. Menu Apple di sudut kiri atas juga memiliki opsi ,, sleep '' (setidaknya pada Tiger saya).
Tadeusz A. Kadłubowski
3

Hibernasi juga akan dipicu secara otomatis jika baterai laptop Anda benar-benar habis.

Bob D
sumber
2
Sebuah Mac Mini tidak memiliki baterai ...
Arjan
2

Saya telah membaca bahwa "Safe Sleep" diaktifkan secara default di semua Mac Intel dan beberapa mesin PowerPC model terbaru (saya pikir Intel mini memiliki dukungan ini, tetapi yang PPC mungkin tidak - tanpa peretasan yang tidak didukung).

Tapi "Safe Sleep" dengan sendirinya tidak persis sama dengan "hibernasi". Ini adalah kombinasi dari menghemat RAM ke disk tetapi juga melakukan tidur normal. Ini memungkinkan untuk bangun cepat, dan juga mempertahankan status sistem jika daya mati sepenuhnya saat mesin sedang tidur.

Anda dapat mengetahui apakah suatu sistem menggunakan Safe Sleep dengan (setelah setidaknya satu tidur) memeriksa file / var / vm / sleepimage yang ukurannya sama dengan RAM yang diinstal. Juga ketika Safe Sleep aktif, akan ada penundaan yang lebih lama antara mengklik item menu Sleep (atau tombol, atau menahan Command-Option-Eject) sebelum lampu status mesin memulai putaran fade-up / fade-down normal.

Bit terakhir dari solusinya adalah membuat mesin mati sepenuhnya setelah menyimpan RAM sleepimage. Sepertinya mungkin untuk mengkonfigurasi ini menggunakan pmset program command-line untuk mengatur hibernatemode . Anda dapat memeriksa sesuatu seperti Tidur Pulas untuk cara otomatis membuat perubahan konfigurasi ini.

Chris Johnsen
sumber
Safe sleep tidak diaktifkan secara default di Intel Mac mini saya. Saya menggunakan SmartSleep untuk mengaktifkannya, tetapi memang pmsetbisa mencapai hal yang sama.
Arjan