GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Ubuntu – Passiert genau in diesem Prozess?

Also habe ich den folgenden Befehl ausgeführt und versehentlich den Monitor gesehen und mich gefragt, was genau passiert. kann mir jemand erklären was hier genau passiert?

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

Da es oft vorkommt, dass die Bilder bei mir nicht geladen werden, versuche ich zu beschreiben, was ich darin sehe. Die Speicherauslastung wächst linear und die CPU1-Auslastung wird auf 100% festgelegt, dann zu den Zeiten t1 (kaum merklich) t2 t3 t4 t5 wächst die Speicherauslastung plötzlich viel schneller für etwa eine halbe Sekunde und die CPU1-Auslastung nimmt ab und die CPU2-Auslastung steigt alle gleichzeitig Zur gleichen Zeit kehrt die Speicherwachstumsrate zu ihrer linearen Form mit genau der gleichen Steigung zurück und die CPU1-Auslastung wächst wieder auf 100% und die CPU2-Auslastung fällt in einer weiteren halben Sekunde auf ihren vorherigen Zustand zurück. Die interessanten Punkte sind:

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.

Ich stelle also mehrere Fragen in einer Frage, aber ich denke, das ist der beste Weg, dies zu tun. Anstatt das gleiche Bild 5 Mal mit fast den gleichen Erklärungen zu posten.

Kann mir bitte jemand erklären, warum genau diese Beobachtungen stattfinden?

Speicherinfo:

$ 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

CPU-Info:

$ 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

Kernel- und Betriebssysteminformationen

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

Shell-Info:

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

Informationen austauschen:

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

Akzeptierte Antwort:

Sie führen einen Befehl aus, der ~848 MB Ausgabe generiert, und versuchen, dies in ein Shell-Befehlszeilenargument für echo zu interpolieren und das dann in eine Datei umleiten. (Übrigens erlauben moderne Shells auf modernen Systemen Befehlszeilen mit einer Länge von bis zu einigen Megabyte, aber keine erlaubt annähernd ein Gigabyte).

Siehe auch:Fedora – Fehlende vboxnet-Schnittstellen nach dem Upgrade auf Fedora 26?

Gibt es Grund zur Überraschung, dass dies enorm viel RAM und CPU-Leistung verbraucht?

Sogar seq 100000000 -1 1 > file wird ausgeführt wird ziemlich viel Zeit in Anspruch nehmen, aber bei weitem nicht so viel Speicherverbrauch, da die Ausgabe ohne die Befehlsersetzung nicht im Speicher gehalten werden muss.

z.B. Auf meinem AMD Phenom II 1090T dauert es 1 Minute und 2 Sekunden, um seq auszuführen Befehl und leite seine Ausgabe in eine Datei um:

$ 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. Discord auf Ubuntu 20.04 installieren - Schritt für Schritt?

  2. Installieren Sie AIDE auf Ubuntu 20.04 - Ein Schritt-für-Schritt-Prozess?

  3. Installieren Sie Pyradio auf Ubuntu 20.04 - Ein Schritt-für-Schritt-Prozess?

  4. Installieren Sie MAAS unter Ubuntu 20.04 - Schritt für Schritt?

  5. Drupal auf Ubuntu 20.04 LTS installieren – Schritt für Schritt?

Installieren Sie Oracle Java 16 auf Ubuntu 18.04 / 20.04 / 21.04 - Ein Schritt-für-Schritt-Prozess?

Installieren Sie Laravel auf Ubuntu 20.04 - Schritt für Schritt?

Eclipse IDE auf Ubuntu 20.04 installieren – Schritt-für-Schritt-Prozess?

Installieren Sie Grafana auf Ubuntu 20.04 - Schritt für Schritt?

Ändern Sie meinen Desktop-Hintergrund in Ubuntu 20.04 - Schritte dazu?

Verwalten von Prozessen in Ubuntu Linux