GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Ubuntu - Succede esattamente in questo processo?

Quindi ho eseguito il seguente comando e ho visto accidentalmente il monitor e mi sono chiesto cosa stesse succedendo esattamente. qualcuno può spiegarmi cosa sta succedendo esattamente qui?

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

Poiché capita molte volte che le immagini non si carichino per me, provo a descrivere quello che ci vedo. L'utilizzo della memoria cresce linearmente e l'utilizzo della CPU1 è fissato al 100%, quindi nei momenti t1 (appena percettibile) t2 t3 t4 t5 l'utilizzo della memoria cresce improvvisamente molto più velocemente per circa mezzo secondo e l'utilizzo della CPU1 diminuisce e l'utilizzo della CPU2 aumenta tutto al allo stesso tempo, il tasso di crescita della memoria torna alla sua forma lineare con la stessa identica pendenza e l'utilizzo della CPU1 cresce di nuovo verso il 100% e l'utilizzo della CPU2 scende allo stato precedente in un altro mezzo secondo. I punti interessanti sono che:

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.

Quindi sto ponendo più domande in una domanda, ma penso che questo sia il modo migliore per farlo. Invece di pubblicare la stessa foto 5 volte con quasi le stesse spiegazioni.

Qualcuno può spiegarmi perché esattamente queste osservazioni hanno luogo?

Informazioni sulla 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

Informazioni sulla 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

Informazioni sul kernel e sul sistema operativo

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

Informazioni sulla shell:

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

Scambia informazioni:

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

Risposta accettata:

Stai eseguendo un comando che genera ~848 MB di output, cercando di interpolarlo in un argomento della riga di comando della shell per echo e quindi reindirizzandolo a un file. (A proposito, le moderne shell sui sistemi moderni consentono righe di comando lunghe fino a pochi megabyte, ma nessuna consentirà quasi un gigabyte).

Correlati:Fedora – Interfacce vboxnet mancanti dopo l'aggiornamento a Fedora 26?

C'è qualche motivo per essere sorpresi dal fatto che questo utilizzi un'enorme quantità di RAM e potenza della CPU?

Anche eseguendo seq 100000000 -1 1 > file impiegherà una discreta quantità di tempo, ma neanche lontanamente l'utilizzo della memoria perché senza la sostituzione del comando, l'output non ha bisogno di essere mantenuto in memoria.

per esempio. sul mio AMD Phenom II 1090T, ci vogliono 1 minuto e 2 secondi per eseguire il seq comando e reindirizza il suo output su un file:

$ 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. Installare Icinga su Ubuntu 20.04 LTS - procedura passo passo?

  2. Installa Oracle Java 16 su Ubuntu 18.04 / 20.04 / 21.04 - Un processo passo dopo passo?

  3. Installa Laravel su Ubuntu 20.04 - Processo passo dopo passo?

  4. Installa Eclipse IDE su Ubuntu 20.04 - Processo passo dopo passo?

  5. Installa Grafana su Ubuntu 20.04 - Processo passo dopo passo?

Installa Pyradio su Ubuntu 20.04 - Un processo passo dopo passo?

Installa MAAS su Ubuntu 20.04 - Tramite un processo passo passo?

Installa Drupal su Ubuntu 20.04 LTS - Procedura passo passo?

Installa Moodle su Ubuntu 20.04 LTS - Procedura passo passo?

Installa Kodi su Ubuntu 20.04 LTS - Un processo passo dopo passo?

Nuovo blocco casuale Yoga X1 Gen 5, Ubuntu 20.04?