Comando di eliminazione - Impossibile eliminare i buffer del disco, errore # -2?

1

Quando tento di eseguire il comando di eliminazione, ottengo lo stesso errore ogni volta.

[ERROR] <CPDevice.c:3816>   Unable to create new counter client.
[ERROR] <CPOSX.c:1172>  Unable to get user client so as to poke the kernel. 
Unable to purge disk buffers, error #-2.

Ho provato con e senza sudo, inizialmente pensando che forse non è in grado di non avere un accesso adeguato e semplicemente non hanno programmato un controllo delle autorizzazioni. È lo stesso errore però.

Ho una doppia installazione Xcode, che credo possa essere il problema qui. Ho installato 3.2.6 in una directory personalizzata (/ Xcode 3) e ho Xcode 4.6.3 dal Mac App Store. Ho installato gli strumenti della riga di comando più recenti (2013.4) da Xcode 4. Utilizzo OS X 10.7.4 Lion.

Prima che qualcuno mi dica che dovrei lasciare che il SO gestisca la memoria inattiva da solo perché lo fa bene, no, non lo è. Non nel minimo. Normalmente funziona abbastanza bene da non infastidirmi. Ma ogni volta che uso qualsiasi tipo di VM, ho riscontrato problemi con la memoria mai rilasciata.

Ad esempio, posso avviare un'istanza di una VM di emulazione. Userà circa 600 MB di memoria. Quando termino completamente l'emulazione, la memoria non viene rilasciata. Oltre a ciò, se torno indietro e rieseguo la stessa identica emulazione, i 600 MB inattivo non vengono riutilizzati come si potrebbe sperare. No, si siede proprio lì. E un altro 600 dalla piscina libera viene utilizzato. E quando quella seconda emulazione è terminata, ora ho 1,2 GB di memoria inattiva. Ora normalmente questo andrebbe bene, se la memoria inattiva fosse rilasciata quando veniva usata tutta la memoria libera. Ma non è così. Si siede e non rilascia mai. Scambierà su disco invece.

Questo problema è particolarmente fastidioso con le VM di virtualizzazione che utilizzano 4 GB o anche più di RAM nel mio normale utilizzo. Riavvia quelli più di una volta e le cose nuove rallentano la scansione a causa dello scambio del disco.

Usavo sempre il comando di cancellazione su 10.5 Leopard con Xcode 3.1.4, ei problemi su Leopard non erano poi così male con la gestione automatica della memoria. Ho appena usato l'epurazione per ottenere più di una lavagna pulita senza dover riavviare. Non posso nemmeno farlo ora. E a differenza di quanto qualcuno direbbe, è un problema serio.

Qualche idea sarebbe apprezzata. Un'altra cosa. Ho usato xcode-select per selezionare Xcode 4.6.3 invece di 3.2.6. Io uso solo il 3.2.6 per lo sviluppo e la compilazione. Macport, Homebrew e alcune altre cose richiedono però l'installazione e la selezione di Xcode 4, che è l'unica ragione per cui l'ho. Ma se ricordo bene, anche l'epurazione non funzionava quando avevo selezionato Xcode 3 invece.

    
posta superriku11 03.01.2014 - 01:11
fonte

1 risposta

1

Privilege necessario

On Mountain Lion purge può essere eseguito da un normale account utente.

On Mavericks purge può essere eseguito solo dall'account root (fino a sudo ). Se si tenta di eseguirlo con un normale account utente, si otterrà un messaggio di errore:

Unable to purge disk buffers: Operation not permitted

Funzione reale

purge non agisce direttamente sulla memoria principale. La sua funzione principale è di terminare tutti gli IO in sospeso che stanno usando la cache disk e poi a libera tutta la cache del disco occupata.

purge dovrebbe liberare spazio su disco per facilitare il paging out e lo swapping dalla memoria principale. Quindi molte persone si convincono che purge era liberando la memoria principale. Questa è una leggenda metropolitana.

Errore reale

Questo problema viene chiaramente dal kernel MacOS X. Potrebbe essere causato da programmi che eseguono molti I / O su un sistema in cui la memoria virtuale è già molto utilizzata. Ma questi programmi sono falsi colpevoli.

Potresti trovare un falso errore esposto qui: Mountain Lion Panic - decodifica

Un panico del kernel è un errore del kernel. Il tipo di messaggio di errore è un messaggio di errore del kernel. È un difetto del kernel.

Dal tuo contesto attuale, ti consiglio di eseguire sysdiagnose e aprire un caso di errore su Apple con il risultato. Questo strumento eseguirà per te tutti gli strumenti pertinenti per analizzare qualsiasi comportamento scorretto del tuo sistema o applicazione di anny in esecuzione su di esso.

Leggi questa risposta professionale: Apple sysdiagnose

    
risposta data 08.01.2014 - 11:28
fonte

Leggi altre domande sui tag