2 votos

¿Cuál es el propósito especulativa de la memoria?

Recientemente, he encontrado que Darwin ha speculative memoria métrica. Pero, no sé cuál es el propósito especulativa de la memoria. La memoria métrica puede ser comprobada mediante vm_stat comando en la terminal.

Mach Virtual Memory Statistics: (page size of 4096 bytes)
Pages free:                              334212.
Pages active:                           1450252.
Pages inactive:                         1367584.
Pages speculative:                        81968.
Pages throttled:                              0.
Pages wired down:                        794478.
Pages purgeable:                         377078.
"Translation faults":                1584392481.
Pages copy-on-write:                  316685071.
Pages zero filled:                    358257445.
Pages reactivated:                      9976919.
Pages purged:                           2557552.
File-backed pages:                       597869.
Anonymous pages:                        2301935.
Pages stored in compressor:             1170377.
Pages occupied by compressor:            165553.
Decompressions:                         7496783.
Compressions:                          14958548.
Pageins:                               29715699.
Pageouts:                               1058099.
Swapins:                                6422438.
Swapouts:                               7169648.

Consulte Darwin fuente, speculative es la que se utiliza para contener las páginas que han sido leídos desde el disco de forma especulativa y la memoria de la métrica es el número de free páginas y no' actaually sido utilizado.

No puedo encontrar ninguna información sobre speculative de memoria en el Internet. Es muy extraño que la memoria es un oficial de darwin de la memoria de la métrica, pero nadie dice.

¿Cuál es el propósito de este mertric a menos que sea usado para cualquier propósito?

1voto

Jose Chavez Puntos 645

Especulativo de la memoria (introducido con OS X 10.5) significa que el núcleo ha marcado una página específica de la memoria como "especulativa" - lo que significa que se almacena en el kernel ya que predice que probablemente será usado para algo más tarde, pero aún no ha sucedido. I. e. el núcleo está especulando que la lectura de algo que ahora se benefician de ella más tarde.

En la práctica, esto se produce cuando el macOS kernel detecta que (debido a las peticiones de la aplicación) son la lectura de una manera secuencial a partir de una unidad de disco. Por ejemplo, si una aplicación lee el bloque número 1, 2 y 3 - es justo asumir que hay una alta probabilidad de que el siguiente bloque que se va a leer es el numero 4. No podría ser, pero es probable que ocurra.

La razón por la que el kernel intenta detectar esto es que en muchos casos es "más barato" (en términos de rendimiento) para leer en grandes bloques en el disco, y/o emitir varias solicitudes a la unidad para muchos bloques al mismo tiempo - en lugar de la emisión de una en una. También es posible que el kernel a solicitud de los bloques de disco, mientras que la aplicación en sí es realmente ocupado haciendo otra cosa y no la ha pedido para el bloque todavía.

La idea detrás de la especulativo páginas es, por tanto, "prefetch" o "leer" en la disco y la tienda de estas en la memoria, así que cuando más tarde, la aplicación solicita los datos, puede ser provisto de forma muy rápida. El actual macOS kernel tiene diferentes optimizaciones para el común de los discos duros y unidades SSD en términos de cuando un prefetch se dispara, y de cuánto es en realidad prefetched en un momento.

El núcleo de las marcas de estas páginas como "especulativa", que es diferente de regular el caché de disco, porque sabe que esto es sólo una optimización del rendimiento en los datos que realmente no ha sido solicitado todavía. Así que si el equipo es la falta de memoria para otros fines, el especulativo páginas pueden ser expulsado con poco o ningún rendimiento de la pena en absoluto.

En la práctica, el kernel de lee en los datos en especulativa páginas y lo marca como "protegidas", lo que significa que no será fácilmente expulsados bajo presión de memoria. Como la especulación en las páginas de edad (es decir, el tiempo pasa) que se mueven de "papelera de reciclaje" para que los adultos mayores de las páginas se almacenan juntos. Cuando llegan a una cierta edad, que no están protegidos y pueden ser fácilmente descartar si la memoria es necesaria para otros fines.

Sin embargo, si una aplicación utiliza los datos de los que se ha puesto en el especulativa páginas, inmediatamente está comentó que ya no son especulativas, y poner en una de las otras categorías pertinentes.

Si lo desea, puede desactivar completamente especulativo de las páginas de configuración de speculative_reads_disabled a 1 con sysctl.

La razón de que las estadísticas se hacen por separado para especulativo páginas, por lo que no se agrupan con páginas libres o el ordinario de la caché de disco es que se puede utilizar para medir si la especulación es muy utilizado en la máquina, y cuánto, y usted tiene una mejor idea sobre la cantidad de memoria que está siendo utilizada por las aplicaciones, y no sólo por el núcleo tratando de optimizar para rendimiento.

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