[Explicación completa de los comandos de Linux] 190. Explicación detallada de los comandos de Linux: groupadd y free

agregar grupo

Se utiliza para crear un nuevo grupo de trabajo.

Información adicional

groupaddEl comando se utiliza para crear un nuevo grupo de trabajo y la información del nuevo grupo de trabajo se agregará al archivo del sistema.

gramática

groupadd [选项] [参数]

Opciones

  • -g: Especifique la identificación del nuevo grupo de trabajo;
  • -r:Cree un grupo de trabajo del sistema, el ID de grupo del grupo de trabajo del sistema es inferior a 500;
  • -K: Sobrescribir el archivo de configuración /ect/login.defs;
  • -o: permite agregar grupos de trabajo con ID de grupo no únicos.

parámetro

  • Nombre del grupo: especifique el nombre del nuevo grupo de trabajo.

Ejemplo

Cree un nuevo grupo y configure el ID del grupo para unirse al sistema:

groupadd -g 344 jsdigname

En este momento, /etc/passwdse genera en el archivo un elemento con un ID de grupo (GID) de 344.

gratis

Mostrar uso de memoria

Información adicional

freeEl comando puede mostrar la cantidad de memoria utilizada y no utilizada en el sistema actual, y también puede mostrar el búfer de memoria utilizado por el kernel.

gramática

free [选项]

Opciones

  • -b: muestra el uso de memoria en bytes;
  • -k: Muestra el uso de memoria en KB;
  • -m: Muestra el uso de memoria en MB;
  • -g: Muestra el uso de memoria en GB;
  • -o: No muestra la columna de ajuste del búfer;
  • -s<间隔秒数>: Observe continuamente el uso de la memoria;
  • -t: Muestra la columna de suma de memoria;
  • -V: muestra información de la versión.

Ejemplo

Muestra información de uso de memoria como una suma:

free -t

Consulte periódicamente la información sobre el uso de la memoria y ejecute el comando cada 10 segundos:

free -s 10

Mostrar uso de memoria:

free -m
total usado gratis compartido amortiguadores almacenado en caché
2016 1973 42 0 163 1497
-/+ buffers/caché 312 1703
Intercambio 4094 0 4094

Explicación de la primera parte de Memla línea:

  • total: Memoria total;
  • used: La cantidad de memoria que se ha utilizado;
  • free: El número de memoria libre;
  • shared: Actualmente en desuso;
  • buffers:Número de memoria caché;
  • cached: Número de memoria caché.

relación:total = used + free

La explicación de la segunda parte (-/+ buffers/cache):

  • (-buffers/cache)Número de memoria utilizada: Memen la primera parte de la líneaused – buffers – cached
  • (+buffers/cache)Número de memoria libre: Memen la primera parte de la líneafree + buffers + cached

Se puede ver -buffers/cacheque lo que se refleja es la memoria realmente consumida por el programa, y +buffers/cache​​lo que se refleja es la cantidad total de memoria que se puede apropiar.

La tercera parte se refiere a la partición de intercambio.

La cuarta línea del resultado es para la partición de intercambio SWAP, que es lo que normalmente llamamos memoria virtual.

memDiferencia: La diferencia entre usado/libre en la segunda línea ( ) y usado/libre en la tercera línea (-/+ buffers/caché). La diferencia entre los dos radica en la perspectiva de uso. La primera línea es desde la perspectiva del sistema operativo. Debido a que se buffers/cachedusa para el sistema operativo, su memoria disponible es 2098428 KB y la memoria utilizada es 30841684 KB, incluido el kernel ( OS) utiliza +búferes+caché utilizados por +Aplicación (X, Oracle, etc.).

buffers/cachedLa tercera línea se refiere a que desde el punto de vista de la aplicación, está disponible para la aplicación

Entonces, desde la perspectiva de la aplicación, memoria disponible = memoria libre del sistema + buffers + caché. Por ejemplo, la memoria disponible de esta máquina es:

18007156 = 2098428 KB + 4545340 KB + 11363424 KB

A continuación, explicamos cuándo se intercambiará la memoria y de qué forma.

Cuando la memoria disponible es menor que el valor nominal, se producirá un intercambio. Cómo ver la calificación:

cat /proc/meminfo

El intercambio reducirá la cantidad de páginas físicas utilizadas en el sistema de tres maneras:

  • Reducir el tamaño del búfer y de la caché de páginas,
  • Cambie las páginas de memoria tipo sistema V,
  • Cambie o descarte páginas (páginas de memoria ocupadas por la Aplicación, es decir, memoria física insuficiente).

De hecho, utilizar swap con moderación no afecta el rendimiento del sistema.

Entonces buffersy cachedambos son cachés, ¿cuál es la diferencia entre los dos?

Para mejorar la eficiencia del acceso al disco, Linux ha realizado algunos diseños elaborados. Además del dentryalmacenamiento en caché (utilizado en VFS para acelerar la conversión de nombres de rutas de archivos a inodos), Linux también adopta dos métodos de caché principales:

  • Buffer Cache: para leer y escribir bloques de disco;
  • Caché de página: para leer y escribir inodos de archivos.

Estos cachés acortan efectivamente el tiempo de las llamadas al sistema de E/S (como read,, ). Las operaciones de disco se dividen en nivel lógico (sistema de archivos) y nivel físico (bloque de disco), estos dos cachés almacenan en caché datos de nivel lógico y físico respectivamente.writegetdents

El caché de página es en realidad para el sistema de archivos y es un caché de archivos. Los datos a nivel de archivo se almacenarán en caché en el caché de página. La capa lógica del archivo debe asignarse al disco físico real, y el sistema de archivos completa esta relación de asignación. Cuando es necesario actualizar los datos en el caché de la página, los datos en el caché de la página se entregan al caché del búfer, porque el caché del búfer almacena bloques de disco. Sin embargo, este procesamiento se ha vuelto muy simple después de la versión 2.6 del kernel y no existe una operación de caché real.

El caché del búfer es un caché para bloques de disco, es decir, en ausencia de un sistema de archivos, los datos que operan directamente en el disco se almacenarán en el caché del búfer, por ejemplo, los metadatos del sistema de archivos se almacenarán en el búfer. cache.

En pocas palabras, el caché de la página se usa para almacenar en caché los datos del archivo y el caché del búfer se usa para almacenar en caché los datos del disco. Cuando hay un sistema de archivos, los datos se almacenarán en el caché de la página cuando se opera en el archivo; si usa directamente ddotras herramientas para leer y escribir en el disco, los datos se almacenarán en el caché del búfer.

Entonces, cuando miramos a Linux, siempre que no utilice el espacio de intercambio, no tiene que preocuparse por tener muy poca memoria. Si utiliza mucho intercambio con frecuencia, es posible que deba considerar agregar memoria física. Este es también el estándar utilizado por Linux para determinar si la memoria es suficiente.

Si se trata de un servidor de aplicaciones, generalmente solo mira la segunda línea, +buffers/cache, lo que significa que la memoria libre es muy pequeña para la aplicación y es hora de considerar optimizar el programa o agregar memoria.

Aprende desde ceropython

[Aprenda Python desde cero] 92. Utilice la biblioteca de solicitudes de Python para enviar solicitudes HTTP y procesar respuestas
[Aprenda Python desde cero] 91. Utilice decoradores y diccionarios para gestionar rutas de solicitud en una aplicación web sencilla
[Aprenda Python desde cero] 93. Utilice el diccionario gestión Ruta de solicitud
[Aprenda Python desde cero] 89. Utilice WSGI para crear un servidor web simple y eficiente
[Aprenda Python desde cero] 88. Explicación detallada de la interfaz WSGI: realice un desarrollo web simple y eficiente
[Aprenda Python desde cero] 87. Manualmente cree un servidor HTTP en Python Implementación y procesamiento concurrente de subprocesos múltiples
[Aprenda Python desde cero] 86. Comprensión profunda del protocolo HTTP y su papel en la comunicación entre el navegador y el servidor
[Aprenda Python desde cero] 85. Aplicación de tecnología de computación paralela en el grupo de procesos de Python
[Aprende Python desde cero]] 84. Comprensión profunda de subprocesos y procesos
[Aprende Python desde cero] 83. Programación multiproceso de Python y el uso de grupos de procesos
[Aprende Python desde cero] 82. Programa de chat implementación basada en subprocesos múltiples
[Aprende Python desde cero] 81. Python más Aplicación de comunicación y cola de subprocesos
[Aprende Python desde cero] 80. Acceso de subprocesos a variables globales y problemas de seguridad de subprocesos
[Aprende Python desde cero] 79. Acceso a subprocesos a variables globales y problemas de seguridad de subprocesos
[Aprende Python desde cero] 78. Caso de descarga de archivos
[Aprende Python desde cero] 77. Programación y precauciones del servidor TCP
[Aprende Python desde cero] 76. Servidor y cliente: componentes clave de la comunicación de red
[Aprende Python desde cero] 75. Protocolo TCP: protocolo de comunicación de capa de transmisión confiable orientado a la conexión
[Aprenda Python desde cero] 74. Programa de red UDP: explicación detallada de los problemas de puerto e información vinculante
[Aprenda Python desde cero] 73. Programa de red UDP: envío de datos
[Aprenda Python desde cero] 72. Comprensión profunda de la comunicación de Socket y Método de creación de sockets
[Aprende Python desde cero] 71. Puertos de red y sus funciones
[Aprende Python desde cero] 70. Métodos de comunicación de red y sus aplicaciones: desde la comunicación directa a enrutadores para conectar múltiples redes
[Aprende Python desde cero] 69. Red análisis de comunicación y clasificación de direcciones IP
[Aprenda Python desde cero] 68. Modos codiciosos y no codiciosos en expresiones regulares de Python
[Aprenda Python desde cero] 67. El módulo re en Python: reemplazo regular y tecnología de coincidencia avanzada
[Aprenda Python desde cero] 66. Comprensión profunda de las expresiones regulares: una herramienta poderosa para la coincidencia de patrones y el procesamiento de texto
[Aprende Python desde cero] 65. Explicación detallada de los modificadores de expresiones regulares de Python y sus aplicaciones
[Aprende Python desde cero] 64. El método re.compile en expresiones regulares de Python Explicación detallada del uso
[Aprenda Python desde cero] 63. Introducción a la clase re.Match y sus atributos y métodos en expresiones regulares
[Aprenda Python desde cero] 62. Expresiones regulares de Python: una poderosa herramienta de coincidencia de cadenas
[Aprenda python desde cero] 61. Explicación detallada y ejemplos de aplicación de atributos de propiedad en Python
[Aprende python desde cero] 60. Generador de exploración: una herramienta flexible para la iteración
[Aprende python desde cero] 59. Iterador: una herramienta eficiente para optimizar el recorrido de datos
[ Aprenda Python desde cero] 58. Excepciones personalizadas en Python y métodos para generar excepciones
[Aprender Python desde cero] 57. Utilice la palabra clave with en Python para cerrar recursos correctamente
[Aprender Python desde cero] 56. La importancia y aplicación del manejo de excepciones en la programación
[Aprender Python desde cero] 55. Serialización y suma en Python Deserialización, aplicación de módulos JSON y pickle
[Aprender Python desde cero] 54. Escribir datos en la memoria
[Aprender Python desde cero] 53. Archivos CSV y módulo CSV de Python
[Aprender Python desde cero] 52. Lectura y escritura de archivos: guía de operación de archivos Python
[ Aprenda Python desde cero] 51. Abrir y cerrar archivos y sus aplicaciones en Python
[Aprender Python desde cero] 49. Funciones integradas relacionadas con objetos en Python y su uso
[Aprende Python desde cero] 48. Explicación detallada de herencia y múltiples herencia en Python
[Aprende python desde cero] 47. El concepto y uso básico de la herencia en programación orientada a objetos
[Aprende python desde cero] 46. Análisis de métodos __new__ e __init__ y singletons en patrones de diseño de Python
[Aprende python desde cero] 45 Métodos de clase y métodos estáticos en Python
[Aprende python desde cero] 44. Propiedades y métodos privados en programación orientada a objetos
[Aprende python desde cero] 43. Ejemplos en programación orientada a objetos de Python Propiedades y atributos de clase
[Aprende python desde cero] 42. Propiedades y métodos integrados en Python
[Aprende Python desde cero] 41. Método mágico de Python (2)
[Aprende Python desde cero] 40. Método mágico de Python (1)
[Aprende Python desde cero] 39. Sintaxis básica orientada a objetos y ejemplos de aplicaciones
[Aprende Python desde cero] 38. Cómo usar e importar paquetes de Python
[Aprende Python desde cero] 37. El uso y las precauciones de los módulos personalizados de Python
[Aprende Python desde cero] Aprenda Python] 36. Métodos y técnicas de uso de pip para la administración de paquetes de terceros en Python
[Aprenda Python desde cero] 35. Módulos comunes del sistema Python y su uso
[Aprenda Python desde cero] 34. Explicación detallada de la importación y uso de módulos de Python
[Aprender Python desde cero] 33. El papel de los decoradores (2)
[Aprender Python desde cero] 32. El papel de los decoradores (1)
[Aprender Python desde cero] 31. Comprensión profunda de ordenar funciones y cierres en Python
[De Aprenda Python desde cero] 30. Comprensión profunda de funciones recursivas y funciones anónimas
【Aprenda Python desde cero】 29. "Explicación detallada de los parámetros de funciones": comprenda los diferentes usos de los parámetros de funciones de Python
【 aprenda Python desde cero] 28. Variables locales y variables globales en Python Variables
[Aprenda Python desde cero] 27. El uso de funciones de Python y llamadas anidadas
[Aprenda Python desde cero] 25. Funciones: una herramienta para mejorar la eficiencia de la escritura de código
[Aprende Python desde cero] 24. Operaciones de cadena y métodos transversales en Python
[Aprende Python desde cero] 23. Cómo usar conjuntos (set) y operaciones comunes en Python
[Aprende Python desde cero] 22. Agregar, eliminar, modificar y consultar variables de diccionario en Python
[Aprende Python desde cero] 21. Tuplas y diccionarios de Python
[Aprende Python desde cero] 20. Habilidades y ejemplos de operación de listas de Python
[Aprende Python desde cero] 19. Aplicaciones de bucles de listas y anidamiento de listas
[Aprende Python desde cero] 18. Explicación detallada de las operaciones básicas de las listas de Python (1)
[De Aprender Python desde cero] 17. El método de formato de cadenas de Python (2)
【Aprender Python desde cero】 16. El método de formato de cadenas de Python (1)
【Aprender Python desde cero】 15. Comprensión profunda de cadenas y codificación del conjunto de caracteres
【De Aprender Python desde cero】 14. Operaciones comunes en cadenas de Python (2)
【Aprender Python desde cero】 13. Operaciones comunes en cadenas de Python (1)
【Aprender Python desde cero】 12. Operaciones y aplicaciones de cadenas de Python
【 Aprendiendo Python desde cero】 11. Declaraciones de bucle de Python y flujo de control
[Aprende Python desde cero] 10. Explicación detallada de las declaraciones condicionales de Python y si anida
[Aprende Python desde cero] 09. Declaraciones de juicio condicional en Python
[Aprende Python desde cero] 08 Python entiende el operador de operaciones de bits, la prioridad del operador
[Aprenda Python desde cero] 07. Explicación detallada de los operadores de Python: asignación, comparación y operadores lógicos
[Aprenda Python desde cero] 06. Utilice operadores aritméticos en Python para cálculos y concatenación de cadenas
[Aprenda de scratch] python ] 05. Salida y entrada en Python
[Aprende python desde cero] 04. Conceptos básicos de la programación en Python: variables, tipos de datos e identificadores
[Aprende python desde cero] 03. Programación interactiva en Python y explicación detallada de los comentarios
[Aprender Python desde cero] 02. Introducción a las herramientas de desarrollo
[Aprender Python desde cero] 01. Instalar y configurar Python

Supongo que te gusta

Origin blog.csdn.net/qq_33681891/article/details/133125935
Recomendado
Clasificación