GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Ubuntu – ¿Sucede exactamente en este proceso?

Así que ejecuté el siguiente comando y accidentalmente vi el monitor y me pregunté qué estaba pasando exactamente. ¿alguien puede explicarme qué está pasando exactamente aquí?

echo "`seq 100000000 -1 1`" > file

Como sucede muchas veces que las imágenes no me cargan, trato de describir lo que veo en ellas. El uso de la memoria crece linealmente y el uso de la CPU1 se fija al 100 %, luego en los tiempos t1 (apenas perceptible) t2 t3 t4 t5 el uso de la memoria crece repentinamente mucho más rápido durante aproximadamente medio segundo y el uso de la CPU1 disminuye y el uso de la CPU2 aumenta todo al mismo tiempo. Al mismo tiempo, la tasa de crecimiento de la memoria vuelve a su forma lineal con exactamente la misma pendiente y el uso de CPU1 crece hacia el 100% nuevamente y el uso de CPU2 cae a su estado anterior en otro medio segundo. Los puntos interesantes son que:

t(i)-t(i-1) = 2*(t(i+1)-t(i))     for every i
The amount of decrease in CPU1 usage doubles for each i
The time interval in which these things take seems to be the same for all i
The amount of sudden growth in memory usage also doubles for all i
The sum of the loads of CPU1 and CPU2 seem to be constant in time.

Así que estoy haciendo varias preguntas en una pregunta, pero creo que esta es la mejor manera de hacerlo. En lugar de publicar la misma imagen 5 veces con casi las mismas explicaciones.

¿Puede alguien explicarme por qué exactamente se están produciendo estas observaciones?

Información de la memoria:

$ sudo lshw -class memory
  *-firmware              
       description: BIOS
       vendor: LENOVO
       physical id: 0
       version: 9ECN31WW(V1.14)
       date: 08/18/2014
       size: 128KiB
       capacity: 6592KiB
       capabilities: pci upgrade shadowing cdboot bootselect edd int13floppynec int13floppytoshiba int13floppy360 int13floppy1200 int13floppy720 int13floppy2880 int9keyboard int10video acpi usb biosbootspecification uefi
  *-cache:0
       description: L1 cache
       physical id: b
       slot: L1 Cache
       size: 32KiB
       capacity: 32KiB
       capabilities: synchronous internal write-back instruction
       configuration: level=1
  *-cache:1
       description: L2 cache
       physical id: c
       slot: L2 Cache
       size: 256KiB
       capacity: 256KiB
       capabilities: synchronous internal write-back unified
       configuration: level=2
  *-cache:2
       description: L3 cache
       physical id: d
       slot: L3 Cache
       size: 6MiB
       capacity: 6MiB
       capabilities: synchronous internal write-back unified
       configuration: level=3
  *-cache
       description: L1 cache
       physical id: a
       slot: L1 Cache
       size: 32KiB
       capacity: 32KiB
       capabilities: synchronous internal write-back data
       configuration: level=1
  *-memory
       description: System Memory
       physical id: 2a
       slot: System board or motherboard
       size: 8GiB
     *-bank:0
          description: SODIMM DDR3 Synchronous 1600 MHz (0.6 ns)
          product: HMT451S6BFR8A-PB
          vendor: Unknown
          physical id: 0
          serial: 1E52E0EA
          slot: DIMM0
          size: 4GiB
          width: 64 bits
          clock: 1600MHz (0.6ns)
     *-bank:1
          description: DIMM [empty]
          product: Empty
          vendor: Empty
          physical id: 1
          serial: Empty
          slot: DIMM1
     *-bank:2
          description: SODIMM DDR3 Synchronous 1600 MHz (0.6 ns)
          product: HMT451S6BFR8A-PB
          vendor: Unknown
          physical id: 2
          serial: 1E82E0B8
          slot: DIMM2
          size: 4GiB
          width: 64 bits
          clock: 1600MHz (0.6ns)
     *-bank:3
          description: DIMM [empty]
          product: Empty
          vendor: Empty
          physical id: 3
          serial: Empty
          slot: DIMM3

Información de la CPU:

$ sudo lshw -class processor
  *-cpu                   
       description: CPU
       product: Intel(R) Core(TM) i7-4700HQ CPU @ 2.40GHz
       vendor: Intel Corp.
       physical id: 4
       bus info: [email protected]
       version: Intel(R) Core(TM) i7-4700HQ CPU @ 2.40GHz
       serial: To Be Filled By O.E.M.
       slot: U3E1
       size: 3285MHz
       capacity: 3400MHz
       width: 64 bits
       clock: 100MHz
       capabilities: x86-64 fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm epb tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt dtherm ida arat pln pts cpufreq
       configuration: cores=4 enabledcores=4 threads=8

Información del sistema operativo y del kernel

$ uname -a
Linux <Machine name> 4.10.0-42-generic #46~16.04.1-Ubuntu SMP x86_64 x86_64 x86_64 GNU/Linux

Información de la carcasa:

$ $SHELL --version
GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)

Intercambiar información:

$ lsblk | grep SWAP
├─sda2   8:2    0   935M  0 part [SWAP]

Respuesta aceptada:

Está ejecutando un comando que genera ~848 MB de salida, tratando de interpolar eso en un argumento de línea de comando de shell para echo y luego redirigir eso a un archivo. (Por cierto, los shells modernos en los sistemas modernos permiten líneas de comando de hasta unos pocos megabytes de largo, pero ninguno permitirá casi un gigabyte).

Relacionado:Fedora:¿faltan las interfaces de vboxnet después de actualizar a Fedora 26?

¿Hay alguna razón para sorprenderse de que esto use una enorme cantidad de RAM y potencia de CPU?

Incluso ejecutando seq 100000000 -1 1 > file llevará una buena cantidad de tiempo, pero no tanto uso de memoria porque sin la sustitución del comando, no es necesario guardar la salida en la memoria.

p.ej. en mi AMD Phenom II 1090T, se tarda 1 minuto y 2 segundos en ejecutar seq comando y redirigir su salida a un archivo:

$ time seq 100000000 -1 1 > /tmp/seq.test

real 1m2.136s   user 1m0.215s   sys 0m1.405s
$ ls -lh /tmp/seq.test 
-rw-r--r-- 1 cas cas 848M Jan  8 12:06 /tmp/seq.test

Ubuntu
  1. Instalar Discord en Ubuntu 20.04 - ¿Proceso paso a paso?

  2. Instalar AIDE en Ubuntu 20.04 - ¿Un proceso paso a paso?

  3. Instalar Pyradio en Ubuntu 20.04 - ¿Un proceso paso a paso?

  4. Instalar MAAS en Ubuntu 20.04 - ¿A través de un proceso paso a paso?

  5. Instalar Drupal en Ubuntu 20.04 LTS - ¿Proceso paso a paso?

Instalar Laravel en Ubuntu 20.04 - ¿Proceso paso a paso?

Instalar Eclipse IDE en Ubuntu 20.04 - ¿Proceso paso a paso?

Instalar Grafana en Ubuntu 20.04 - ¿Proceso paso a paso?

Instalar Cockpit en Ubuntu 20.04 - ¿Proceso paso a paso para hacer esto?

Instalar y configurar Apache Kafka en Ubuntu 20.04 - ¿Proceso paso a paso para implementar esta tarea?

Nueva congelación aleatoria de Yoga X1 Gen 5, ¿Ubuntu 20.04?