GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Ubuntu - se passe-t-il exactement dans ce processus ?

J'ai donc exécuté la commande suivante et j'ai accidentellement vu le moniteur et je me suis demandé ce qui se passait exactement. quelqu'un peut-il m'expliquer ce qui se passe exactement ici ?

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

Comme il arrive souvent que les images ne se chargent pas pour moi, j'essaie de décrire ce que j'y vois. L'utilisation de la mémoire augmente de manière linéaire et l'utilisation du CPU1 est fixée à 100 %, puis aux instants t1 (à peine perceptible) t2 t3 t4 t5, l'utilisation de la mémoire augmente soudainement beaucoup plus rapidement pendant environ une demi-seconde et l'utilisation du CPU1 diminue et l'utilisation du CPU2 augmente tout à la fois. en même temps, le taux de croissance de la mémoire revient à sa forme linéaire avec exactement la même pente et l'utilisation du CPU1 augmente à nouveau vers 100% et l'utilisation du CPU2 revient à son état antérieur dans une autre demi-seconde. Les points intéressants sont 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.

Je pose donc plusieurs questions en une seule question mais je pense que c'est la meilleure façon de le faire. Plutôt que de poster 5 fois la même photo avec quasiment les mêmes explications.

Quelqu'un peut-il m'expliquer pourquoi exactement ces observations ont lieu ?

Informations sur la mémoire :

$ 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

Informations sur le processeur :

$ 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

Informations sur le noyau et le système d'exploitation

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

Informations sur le shell :

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

Informations sur l'échange :

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

Réponse acceptée :

Vous exécutez une commande qui génère ~ 848 Mo de sortie, en essayant d'interpoler cela dans un argument de ligne de commande shell pour echo puis le rediriger vers un fichier. (BTW, les shells modernes sur les systèmes modernes autorisent les lignes de commande jusqu'à quelques mégaoctets de long, mais aucun n'autorisera près d'un gigaoctet).

En relation :Fedora – Interfaces vboxnet manquantes après la mise à niveau vers Fedora 26 ?

Y a-t-il une raison d'être surpris que cela utilise une énorme quantité de RAM et de puissance CPU ?

Même en exécutant seq 100000000 -1 1 > file va prendre pas mal de temps, mais loin d'être aussi utilisé en mémoire car sans la substitution de commande, la sortie n'a pas besoin d'être conservée en mémoire.

par exemple. sur mon AMD Phenom II 1090T, il faut 1 minute et 2 secondes pour exécuter le seq commande et redirige sa sortie vers un fichier :

$ 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. Installer Discord sur Ubuntu 20.04 - Processus étape par étape ?

  2. Installer AIDE sur Ubuntu 20.04 - Un processus étape par étape ?

  3. Installer Pyradio sur Ubuntu 20.04 - Un processus pas à pas ?

  4. Installer MAAS sur Ubuntu 20.04 - Via un processus étape par étape ?

  5. Installer Drupal sur Ubuntu 20.04 LTS - Processus étape par étape ?

Modifier l'arrière-plan de mon bureau dans Ubuntu 20.04 - Étapes pour le faire ?

Installer Ruby sur Ubuntu 20.04 - Processus étape par étape ?

Installer Dropbox sur Ubuntu 20.04 - Processus étape par étape ?

Installer Cockpit sur Ubuntu 20.04 - Procédure étape par étape pour le faire ?

Installer et configurer Apache Kafka sur Ubuntu 20.04 - Processus étape par étape pour implémenter cette tâche ?

Nouveau Yoga X1 Gen 5 Random Freeze, Ubuntu 20.04 ?