2 votos

Comando Purge - no se puede purgar búferes de disco, de error #-2?

Cuando intento ejecutar el comando purgar, me sale el mismo error cada vez.

[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.

He probado con y sin el sudo, inicialmente pensando que tal vez es incapaz, debido a que no tiene acceso adecuado, y que simplemente no en un programa de verificación de los permisos. Es el mismo error, aunque.

Tengo una doble instalación de Xcode, que creo que puede ser el problema aquí. He 3.2.6 instalado en un directorio personalizado (/Xcode 3) y he Xcode 4.6.3 desde la Mac App Store. He instalado la más reciente (2013.4) Herramientas de Línea de Comandos desde dentro de Xcode 4. Estoy ejecutando OS X Lion 10.7.4.

Antes de que nadie me dice que debo dejar que el sistema operativo administrar la memoria inactiva en su propio porque lo hace bien, no, no. No en lo más mínimo. Normalmente funciona bastante bien no me molesta. Pero cada vez que utilice cualquier tipo de máquina virtual, me encuentro con problemas con la memoria de los que nunca liberación.

Por ejemplo, puede iniciar una instancia de una emulación de la VM. Lo voy a usar unos 600 MB de memoria. Cuando me doy de baja en la emulación por completo, la memoria no se libera. En la parte superior de que, si me voy de nuevo y vuelva a ejecutar el mismo emulación, los 600 MB sentado en inactivo no volver a usar como uno podría esperar. No, sólo se sienta allí. Y otros 600 de la piscina libre de acostumbrarse. Y cuando ese segundo emulación está terminado, ahora tengo 1.2 GB de memoria inactiva. Normalmente esto estaría bien, si la memoria inactiva libera cuando toda la memoria libre se utilizó. Pero no es así. Sólo se sienta allí y nunca libera. Te swap a disco en su lugar.

Este problema es particularmente molesto con la virtualización de máquinas virtuales que usar 4 GB o más de RAM en mi uso normal. Reinicie aquellos que más de una vez y cosas nuevas lento a paso de tortuga, debido al intercambio de disco.

He usado el comando purgar todo el tiempo en 10.5 Leopard con Xcode 3.1.4, y problemas en el Leopard no estaban cerca de este mal con gestión automática de la memoria. Acabo de utilizar purga para obtener más de una pizarra limpia sin tener que reiniciar. Ni siquiera puedo hacer eso ahora. Y a diferencia de algunas personas les digo, que esto es un problema grave.

Cualquier idea se agradece. Una cosa más. He utilizado xcode-select a seleccione Xcode 4.6.3 frente a 3.2.6. Yo sólo uso 3.2.6 para el desarrollo y compilación. Macports, Homebrew, y algunas otras cosas, la demanda de Xcode 4 para ser instalado y seleccionado, sin embargo, que es la única razón por la que tengo yo. Pero si recuerdo correctamente, la purga también no funciona cuando tuve Xcode 3 seleccionado en su lugar.

1voto

Rich Puntos 2429

Privilegio es necesario

En Mountain Lion de purga se puede ejecutar desde una cuenta de usuario normal.

En Mavericks de purga sólo se puede ejecutar desde root cuenta (a través de la sudo). Si intenta ejecutar con una cuenta de usuario normal, usted recibirá un mensaje de error:

Unable to purge disk buffers: Operation not permitted

Función Real

purge no actúa directamente en la memoria principal. Su función principal es terminar todas las IO pendiente de que está utilizando el disco de caché y, a continuación, a libre de todos los territorios ocupados del disco caché.

purge debe de espacio libre en disco para la facilidad de paginación y el intercambio de la memoria principal. De ahí que muchas personas se convencidos de que purge fue liberar la memoria principal. Esta es una leyenda urbana.

Falta Real

Este problema es claramente que vienen directamente de los MacOS X del kernel. Puede estar causado por programas haciendo un montón de e/S en un sistema donde la memoria virtual está ya muy usada. Pero estos programas son falsos culpables.

Usted puede encontrar un falso culpable que se exhiben aquí: Lion de Montaña de Pánico - decode

Un kernel panic es un núcleo de culpa. El tipo de mensaje de error es un núcleo mensaje de error. Es un núcleo de falla.

A partir de su contexto real, te aconsejo que para que se ejecute sysdiagnose y abrir un error en caso de Apple con el resultado. Esta herramienta funcionará para usted todas las herramientas relevantes para analizar cualquier mal comportamiento de su sistema o anny aplicación que se ejecuta en él.

Por favor, lea esta serie de responder: Apple sysdiagnose

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X