26 aprile 2008

Processore furioso

Ho già detto che adoro MenuMeters e oggi lo amo più di ieri. Basta un colpo d'occhio nel menu per capire se qualcosa sta andando storto.
Se mentre leggi una pagina web, senza nulla di rilevante in background, uno dei due valori del processore schizza al 100 per cento e ci rimane, qualcosa va veramente storto.
Ho un dual core e la cosa che andava storta rimpallava da un core all'altro. Un riavvio non ha sortito effetti.
Facendo clic nelle percentuali di occupazione processore appare un menu che cortesemente MenuMeters fa apparire dal quale lanciare Monitoraggio Attività e trovare il colpevole.
Il processo syslogd si mangia a turno uno dei due core. Buon appetito. La cosa sembra sia risaputa in giro, ma come sempre le ricette per porre rimedio sono fantasiose e talvolta inutili.

Se si apre la Console per dare un'occhiata in giro a cosa sta accadendo ai processi di sistema si rischia di attendere per sempre, visto che il solerte syslogd sta impallando il sistema proprio scrivendo come un forsennato messaggi di errore nel file che Console dovrebbe aprire. Un programma in esecuzione aveva generato un errore e syslogd si era messo a scrivere un megaziliardo di volte "Non disturberò più in classe durante le lezioni" nel mio logfile. Bravo.

Per l'appunto, uno dei sintomi del problema non è solo il processore rintronato (difficile non notarlo anche senza MenuMeters perché il Mac diventa poco gestibile e perché la ventola diventa rumorosa come un phon) ma anche lo spazio su disco che decrementa per colpa del logfile sempre più grande. In tempi di dischi da 100 MByte lo si sarebbe notato subito, con volumi da 250 GByte in effetti ci vuole veramente molto tempo prima che il logfile ipertrofico lasci il segno...

La soluzione migliore che ho trovato passa per il terminale. E qualcuno dirà che c'è un modo migliore...

Per prima cosa fermiamo il processo rintronato:
> sudo launchctl stop com.apple.syslogd
E il processore dovrebbe essere tornato a valori normali.

Poi brasiamo il log del database che potrebbe essere davvero grande:
> sudo rm /var/log/asl.db

A questo punto o si riavvia il sistema o si riavvia syslogd:
>sudo launchctl start com.apple.syslogd

Ovviamente pasticciate con il terminale solo se sapete cosa fate e ricordate che la parolina sudo a inizio riga non solo fa sì che vi venga chiesta la password di amministratore, ma dovrebbe anche farvi pensare e spingervi a controllare la correttezza dei comandi impartiti. Per capirci il comando RM nella seconda riga cancella qualcosa: assicuratevi che sia la cosa giusta.

Nessun commento: