Diferença entre desligamento automático e espera no pmset

27

Acabei de adquirir um novo Retina MacBook Pro 15 ". Depois de interromper alguns downloads devido ao computador entrar no modo de suspensão (mesmo com energia CA), comecei a olhar para a página de manual do pmsetcomando. Resolvi meu problema original ao dormir, mas algumas opções despertaram meu interesse.Em particular, aqui está a descrição da autopoweroffconfiguração na página de manual:

autopoweroff - Quando suportado, ativado por padrão como uma implementação do Lote 6 da Diretiva Européia de Produtos Relacionados à Energia. Depois de dormir por alguns minutos de atraso de desligamento automático , o sistema gravará uma imagem de hibernação e entrará em suspensão do chipset de menor potência. As ativações desse estado levarão mais tempo do que as ativações do sono regular. O sistema não será desligado automaticamente se houver algum dispositivo externo conectado, se estiver com energia da bateria ou se o sistema estiver ligado a uma rede e a ativação do acesso à rede estiver ativada.

E depois há o standbymodo:

o modo de espera faz com que o gerenciamento de energia do kernel hiberne automaticamente uma máquina depois de ter dormido por um período especificado. Isso economiza energia durante o sono. Essa configuração é ON como padrão para o hardware suportado. O modo de espera de configuração ficará visível no pmset -g se o recurso for suportado nesta máquina.

o modo de espera funciona apenas se a hibernação estiver ativada no hibernatemode 3 ou 25.

standbydelay especifica o atraso, em segundos, antes de gravar a imagem de hibernação no disco e desligar a memória do modo em espera.

Agora, talvez eu esteja apenas sendo grossa, mas ambas as opções parecem fazer essencialmente a mesma coisa. A principal diferença que vejo é que standbyrequer um específico hibernatemode.

Concretamente, a maneira como eu gostaria de configurar meu computador é para que ele durma apenas com RAM (exatamente como hibernatemode 0faz) ao fechar a tampa pela primeira vez, para que ele durma rapidamente, sem gravar o conteúdo da RAM no disco imediatamente. No entanto, se eu deixar o computador em repouso com a tampa fechada por um certo número de horas (digamos 4 horas), gostaria que ele apenas gravasse o conteúdo da RAM no disco e desligasse o computador, para economizar bateria. caso de um sono prolongado. Idealmente, eu também gostaria que a segunda parte (gravar RAM no disco e desligar) acontecesse apenas se o computador estivesse funcionando com bateria.

O raciocínio aqui é que, para mim, o caso de uso comum para dormir é levar o computador de casa para o trabalho e voltar, e não faz sentido desacelerar o processo de suspensão e desperdiçar ciclos de gravação de SSD (além de desacelerar o processo) processo, se hibernar) se eu vou acordá-lo novamente em menos de uma hora; Além disso, como o tempo gasto para dormir é tão curto, não será economizada muita bateria desligando o computador por um período tão curto.

Como devo configurar as hibernatemode, autopoweroff, autopoweroffdelay, standbye standbydelayopções para atingir esse comportamento?

swineone
fonte
Tenho uma pergunta: no meu Macbook pro 2015 (12,1) pmset -g shows: autopoweroffdelay 14400 Eu nunca mudei, por isso é a configuração de fábrica. Mas "man pset" mostra: atraso de desligamento automático - atraso antes de entrar no modo de desligamento automático. (Valor = número inteiro, em minutos) Portanto, com a configuração de fábrica definida como 14400, meu mac não entrará no modo de segurança antes de ... 10 dias! Curioso, não é?
Estou curioso, como você resolveu seu problema de interrupção de download?
Dickster

Respostas:

13

O recurso de desligamento automático também é mencionado em http://support.apple.com/kb/HT1757 :

Com o lançamento da atualização suplementar 2.0 do OS X Mountain Lion v10.8.2, um novo recurso foi introduzido para entrar em suspensão segura após quatro horas do computador sendo conectado à energia CA. Este é um esforço para cumprir as normas europeias de energia (ErP Lot6). Isso ocorrerá apenas se não houver atividade sem fio ou Ethernet e nenhuma atividade de dispositivos externos, como dispositivos de armazenamento USB.

Esse é um comportamento normal para os seguintes modelos:

  • MacBook Pro (meados de 2012 e posterior)
  • MacBook Pro (Retina, meados de 2012 e posterior)
  • MacBook Air (meados de 2012 e posterior)
  • iMac (final de 2012 e posterior)
  • Mac mini (final de 2012 e posterior)

O modo de espera está documentado em http://support.apple.com/kb/ht4392 :

Macs que podem usar o modo de espera:

  • MacBook Pro (Retina, 13 polegadas, final de 2012) e posterior
  • MacBook Pro (Retina, 15 polegadas, início de 2013) e posterior
  • MacBook Pro (Retina, meados de 2012)
  • MacBook Air (meados de 2010) e posterior
  • Versões de unidades SSD e Fusion do Mac mini (final de 2012) e posterior
  • Versões de unidades SSD e Fusion do iMac (final de 2012) e posteriores

Os computadores Mac fabricados em 2013 ou mais tarde entram em modo de espera após três horas de sono "regular". Os computadores anteriores são ativados após pouco mais de uma hora de sono "regular".

Para entrar no modo de espera, o computador deve:

  • Funciona com bateria (se for um notebook Mac).
  • Não há dispositivos USB conectados.
  • Não possui dispositivos Thunderbolt conectados.
  • Não tem cartão SD inserido.
  • Não há nenhum monitor externo conectado.
  • Um computador com uma bateria totalmente carregada pode ficar em espera por até trinta dias sem estar conectado a uma fonte de energia CA.

O estado do computador é salvo no armazenamento flash (SSD) e, em seguida, a energia dos subsistemas de hardware é desligada para aumentar a duração da espera. Por exemplo, a memória RAM e o barramento USB são desligados durante o modo de espera.

Portanto, o modo de espera e o desligamento automático são suportados por diferentes modelos de Macs e são ativados sob diferentes condições. O modo de espera foi introduzido em 2010 e inicialmente era suportado apenas pelo MacBook Airs, mas agora é suportado por todos os novos Macs, exceto Mac Pros, iMacs sem SSD e Mac minis sem SSD. O autopoweroff foi introduzido em 2012 e é suportado por todos os novos Macs, exceto Mac Pros.

Não sei se o estado em modo de espera é diferente do estado de desligamento automático. Uma tela cinza com uma barra de progresso é exibida quando um Mac acorda dos dois estados.

Observe que a Apple usou "suspensão segura" para se referir ao modo híbrido de suspensão e hibernação que os laptops usam por padrão (como em http://support.apple.com/kb/PH11096 ) e ao estado somente de hibernação (como na primeira citação em bloco acima).

Mesmo se você definir o modo de espera como 0 e desativar o modo de espera e o desligamento automático, não gastará tanta energia. Os novos laptops usam cerca de 0,7-1W de energia no modo de suspensão e cerca de 0,2-0,3W quando desligados ou no modo de hibernação.

Lri
fonte
Portanto, parece que a principal diferença autopoweroffé aplicada à energia CA e standbyà bateria? Eu acho que o standbymodo é o que eu realmente preciso então.
Swineone
Ao falar sobre desperdício de energia, multiplique seus números pelo número de laptops no planeta. Além disso, talvez esteja faltando alguma coisa, mas por que algo usaria energia "quando desligado"?
eggyal 03/02
25

Tentei resumir todas as configurações em uma imagem.

Para o OS X 10.9 (seria um pouco diferente com o SO mais recente)

Suspensão do sonofonte

Eu diria que existem apenas dois "modos": sono e hibernação

  • Repouso : os dados serão mantidos na memória.
  • Hibernação : (ou em espera? SafeSleep? DeepSleep?) Os dados serão mantidos no disco rígido e requerem significativamente menos consumo de energia.

Aqui estão resumos da minha compreensão ..

  1. se [sleep == 0] , o computador não irá mais dormir ou hibernar.
  2. se [standby == 1] e [hibernatemode == 3] , o computador aguardará outro [standbydelay] minutos antes de realmente entrar na hibernação.
  3. [autopoweroff] é apenas uma implementação extra para atender aos requisitos regulatórios e tem o mesmo impacto equivalente a 2)
  4. 2) ou 3) entra em vigor se um deles for alcançado primeiro.
  5. se [em espera == 1] e [hibernatemode == 25] , o computador entrará na hibernação imediatamente após [ minutos de espera ] .

Nota: no MacOS 10.13 autopoweroffdelayespecifica o atraso seconds, antes de entrar no autopoweroffmodo.

Alguém pode revisar e confirmar a interpretação? obrigado

elgcom
fonte
1
Esta imagem é incrível!
Andrea Bergonzo
Ótima imagem! Eu acredito que o autopoweroffdelay também está em segundos (ver man pmset)
Zyphrax
man pmset -> autopoweroffdelay - atraso antes de entrar no modo de desligamento automático. (Valor = número inteiro, em minutos)
elgcom
1
Gostaria de saber se a coisa segundos / minutos varia de acordo com o modelo. Minha página de manual diz "autopoweroffdelay especifica o atraso, em segundos, antes de entrar no modo autopoweroff".
Kelvin
Ótimo gráfico! Mas nenhum comentário confirma explicitamente, e ainda não é a resposta mais votada. Se isso fosse confirmado, essa resposta mereceria ser a resposta principal, pois a combinação de infográfico + explicação torna a resposta digerível com mais eficiência.
porg 06/04
12

Essa coisa de hibernação / sono está me deixando louco. E eu concordo que a Apple deveria colocar mais energia na correção desse comportamento do pmset.

Eu serei claro. Eu amo o modo de hibernação e costumava funcionar perfeitamente em modelos e sistemas operacionais mais antigos (basta executar o sudo pmset hibernatemode 25). Agora a Apple quebrou algo e isso simplesmente não funciona desde Yosemite.

Eu tenho uma retina agora e agora, mais do que nunca, a opção de hibernação faz muito mais sentido do que o sono. Não entendo por que as pessoas que têm SSDs adoram Dormir tanto com hibernação, simplesmente não entendo que elas não entendem que a diferença de tempo de acordar entre hibernação e sono é de 1 segundo, mas economizam toneladas de bateria, alguém me explica o que eles vêem como a grande vantagem porque eu não entendo. Enfim, (se você gosta de hibernar tanto quanto eu, continue lendo), queria que o hibernasse funcionasse. Levei semanas para fazer o trabalho e vou compartilhar o que fiz com todos vocês.


É necessário reiniciar o SMC e depois o NVRAM / PRAM:

Redefina o SMC ( http://support.apple.com/kb/ht3964 ):

  1. Desligar o computador.
  2. Conecte o adaptador de energia MagSafe a uma fonte de energia e conecte-o ao Mac, se ainda não estiver conectado.
  3. No teclado embutido, pressione as teclas Shift-Control-Option (lado esquerdo) e o botão liga / desliga ao mesmo tempo.
  4. Solte todas as teclas e o botão liga / desliga ao mesmo tempo.
  5. Pressione o botão liga / desliga para ligar o computador.

Nota: O LED no adaptador de energia MagSafe pode mudar de estado ou desligar temporariamente quando você redefine o SMC.

Redefinindo NVRAM / PRAM ( http://support.apple.com/kb/HT1379 ):

  1. Desligue o seu Mac.
  2. Localize as seguintes teclas no teclado: Comando, Opção, P e R. Você precisará manter essas teclas pressionadas simultaneamente na etapa 4.
  3. Ligue o computador.
  4. Pressione e mantenha pressionadas as teclas Command-Option-PR antes que a tela cinza apareça.
  5. Mantenha as teclas pressionadas até o computador reiniciar e você ouvir o som de inicialização pela segunda vez.
  6. Solte as teclas.

Agora execute estes:

AC:

sudo pmset -c sleep 0
sudo pmset -c standby 0
sudo pmset -c standbydelay 5
sudo pmset -c hibernatemode 25

Bateria:

sudo pmset -b sleep 120
sudo pmset -b standby 1
sudo pmset -b standbydelay 5
sudo pmset -b hibernatemode 25

Todos:

sudo pmset -a acwake 0
sudo pmset -a lidwake 0
sudo pmset -a ttyskeepawake 0
sudo pmset -a darkwakes 0

Tudo feito! Defina o MacBook para dormir e, quando você o acordar, verá uma barra de progresso antes que o computador esteja pronto. Isso significa que o MacBook estava hibernando! (nota: eu odeio que eles tenham removido a luz do sono do MacBook Pro, isso foi muito útil)

pepeanto
fonte
Isso funcionou para mim usando o macbook pro de final de 2008 executando o El Capt.
squarecandy
O hibernar não é substituído por autopoweroff aka sono profundo? Ou você está dizendo que é preferível?
22718 Boy
Eu acho que a razão pela qual as pessoas não gostam de hiberar (pelo menos com desligamento automático) é porque mata suas guias do Chrome, mata seu servidor rails / nodejs, mata seu processo nativo de reação, basicamente destrói sua produtividade como engenheiro que não possui laptop ligado durante a noite.
Eric Goldberg
Alguma idéia de qual comando desativar a ativação do trackpad / teclado?
Rodrigo Polo
@ EricGoldberg - Eu acho que você está falando sobre "retomar o sistema ao reiniciar", onde o sistema é inicializado normalmente e recria todas as janelas. O Hibernate é apenas outra maneira de dormir o seu Mac, que usa muito menos energia porque a RAM é salva no disco. Veja a última seção do site DeepSleep incluindo o vídeo mostrando a diferença. Não estou sugerindo essa ferramenta, embora no El Capitan 10.11 tenha sido bastante conveniente selecionar hibernação versus sono normal.
RichVel 16/06
1

Esta é uma boa compilação e justaposição dos dois modos de gerenciamento de energia: espera versus desligamento automático, mas as conclusões feitas acima não são o IMHO totalmente correto.

Eu tenho um Macbook Pro 15 "em meados de 2012 (não SSD) e ele oferece suporte tanto ao modo de espera quanto ao desligamento automático. Os artigos citados acima não mostram que o MacBook Pro de meados de 2012 oferece suporte ao modo de espera; no entanto, abaixo está a saída do" pmset comando -g cap "no meu MacBook Pro:

$ pmset -g cap
Capabilities for AC Power:
 displaysleep
 disksleep
 sleep
 womp
 acwake
 lidwake
 halfdim
 sms
 gpuswitch
 standby
 standbydelay
 ttyskeepawake
 hibernatemode
 hibernatefile
 autopoweroff
 autopoweroffdelay

Eu tive todos os tipos de problemas de gerenciamento de energia desde o Mountain Lion; O computador hibernava depois que entrava no modo de espera, então comecei a procurar o comando "pmset". Às vezes parecia, no entanto, que a hibernação "desligamento automático" seria acionada pelo timer de "desligamento automático", mas a hibernação "em espera" não seria acionada pelo timer "atraso de espera". O gerenciamento de energia nunca funcionou corretamente desde o Mountain Lion - mesmo em Mavericks.

Acabei de procurar no log do comando pmset e parece que meu MacBook Pro foi ativado "Dark Wake" às ​​23h02 devido a EC.ACAttach / Maintenance e depois novamente às 3:32 devido a Atividade EHC1 / HID ". O dispositivo AHC1 / HID é o teclado bluetooth da Logitech ou o Magic Trackpad.

pmset -g stats

4/17/14, 7:06:08 PM EDT  Sleep                  Clamshell Sleep: Using BATT (Charge:99%)                                              
4/17/14, 7:06:11 PM EDT  SlowResponse           PMConnection: Response from com.apple.apsd is slow (powercaps:0x0)                    3038 ms       
4/17/14, 7:06:34 PM EDT  Assertions             PID 33194(AddressBookSour) Released PreventUserIdleSystemSleep "Address Book Source Sync" 00:00:30  id:0x100000b31 [System: No Assertions]            
4/17/14, 7:06:34 PM EDT  Assertions             PID 172(UserEventAgent) Released BackgroundTask "com.apple.AddressBook.ScheduledSync" 00:00:30  id:0xc00000b32 [System: No Assertions]            
4/17/14, 7:06:36 PM EDT  Timedout               PMConnection: Response from CMacPowerHelper timed out (powercaps:0x0)                 27999 ms      
4/17/14, 7:06:36 PM EDT  WakeRequests           Clients requested wake events: None                                                   

4/18/14, 11:02:09 AM EDT                        Summary- [System: No Assertions] Using AC                                             
4/18/14, 11:02:14 AM EDT DarkWake               DarkWake [CDN] due to EC.ACAttach/Maintenance: Using AC (Charge:87%)        1 secs    
4/18/14, 11:02:14 AM EDT Timedout               Kernel: Response from Messages timed out (powercaps:0x9)                              30000 ms      
4/18/14, 11:02:14 AM EDT SlowResponse           Kernel: Response from powerd is slow (powercaps:0x0)                                  28003 ms      
4/18/14, 11:02:14 AM EDT Assertions             PID 16(powerd) Created InternalPreventSleep "com.apple.powermanagement.acwakelinger" 00:00:00  id:0xe00000b3f [System: PrevIdle SRPrevSleep kCPU]             
4/18/14, 11:02:15 AM EDT Wake                   DarkWake to FullWake [CDNVA] due to HID Activity: Using AC (Charge:87%)               
4/18/14, 11:02:17 AM EDT SlowResponse           PMConnection: Response from com.apple.notificationcenter.dnd is slow (powercaps:0x1f)             1536 ms       
4/18/14, 11:02:47 AM EDT Assertions             PID 33219(SubmitDiagInfo) Released PreventUserIdleSystemSleep "com.apple.SubmitDiagInfo.run" 00:00:36  id:0x100000b3e [System: PrevIdle BGTask SRPrevSleep kCPU]              
4/18/14, 11:02:59 AM EDT Assertions             PID 16(powerd) TimedOut InternalPreventSleep "com.apple.powermanagement.acwakelinger" 00:00:44  id:0xe00000b3f [System: PrevIdle BGTask SRPrevSleep kCPU]             
4/18/14, 11:02:59 AM EDT Assertions             PID 16(powerd) Released InternalPreventSleep "com.apple.powermanagement.acwakelinger" 00:00:44  id:0xe00000b3f [System: PrevIdle BGTask SRPrevSleep kCPU]             
4/18/14, 11:03:13 AM EDT Assertions             PID 33240(AddressBookSour) Released PreventUserIdleSystemSleep "Address Book Source Sync" 00:00:53  id:0x100000b5b [System: BGTask]           
4/18/14, 11:03:13 AM EDT Assertions             PID 172(UserEventAgent) Released BackgroundTask "com.apple.AddressBook.ScheduledSync" 00:00:53  id:0xc00000b5c [System: BGTask] 

4/19/14, 3:32:20 AM EDT  Wake                   Wake [CDNVA] due to EHC1/HID Activity: Using AC (Charge:99%)                7182 secs 

O MacBook Pro nunca entrou no modo "hibernação" porque mantive o temporizador "autopoweroffdelay" no valor padrão de 14.400 segundos (4 horas) para energia da bateria e energia CA. Defino manualmente o "atraso da espera" para 28.800 segundos (8 horas) para energia da bateria e para 100.800 segundos (28 horas) para energia CA A única maneira de saber com certeza qual opção de "hibernação" é ativada - "desligamento automático" ou "espera" - é definir um intervalo de tempo muito curto - talvez uma hora depois que o Mac entra em "suspensão". Então, pode-se ver qual modo de "hibernação" acionou o Mac para "hibernar".

Escusado será dizer que é inaceitável que a Apple não consiga fazer isso funcionar há vários anos. Os recursos suportados pelo comando "pmset" precisam ser limpos e as opções suportadas precisam estar disponíveis na GUI nas Preferências do Sistema.

user76158
fonte