Ich verwende Linux 4.15, und das passiert mir oft, wenn ich Google, Facebook oder eine andere ressourcenhungrige Website durchsuche – Das gesamte Betriebssystem reagiert nicht mehr, ist eingefroren und nutzlos. Das einzige, was ich sehe, ist die Festplatte (als ext4 formatierte Hauptsystempartition), die massiv genutzt wird (I/O-Drosselung).
Ich bin gezwungen, eine Minute oder länger zu warten, um die Aufblähung loszuwerden, manchmal reagiert es zwölf nicht Minuten, und daher bin ich frustriert. Die Tatsache, dass das Betriebssystem Multitasking nicht gut handhaben kann, spiegelt tendenziell ein absolut seltsames und inakzeptables Verhalten wider.
Das passiert nicht nur mit Firefox, sondern mit jedem Javascript-Interpreter-Anwendung einschließlich Microsoft VSCode oder Angular-Cli (ng serve
-Befehl) sowie alle anderen ressourcenhungrigen Ausführungsthreads – wie im Fall von plantuml, wenn ein sehr großer Graph aus einem sehr komplexen UML-Diagramm generiert wird.
Heute ist das Betriebssystem völlig unüberschaubar, nachdem eine Datenwiederherstellungssoftware für eine externe Festplatte (über eine ext4-Partition) gestartet wurde, die kürzlich durch eine kleine Bewegung von einem fehlerhaften USB-Anschluss getrennt wurde.
Ich bin nicht in der Lage, die eigentliche Ursache für ein solches fehlerhaftes Verhalten zu ermitteln
Ich habe viele Registerkarten im Browser geöffnet und 94 % der OS-Partitionsnutzung gemäß df
Ausgabe:
Filesystem 1K-blocks Used Available Use% Mounted on
udev 3964160 0 3964160 0% /dev
tmpfs 798164 3192 794972 1% /run
/dev/sda5 173466400 153224316 11407424 94% /
tmpfs 3990820 62936 3927884 2% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 3990820 0 3990820 0% /sys/fs/cgroup
/dev/loop5 128 128 0 100% /snap/anbox-installer/24
/dev/loop2 128 128 0 100% /snap/anbox-installer/17
/dev/loop4 223616 223616 0 100% /snap/kde-frameworks-5/26
/dev/loop3 90624 90624 0 100% /snap/core/7169
/dev/loop7 223616 223616 0 100% /snap/kde-frameworks-5/25
/dev/loop8 90624 90624 0 100% /snap/core/7270
/dev/loop0 87552 87552 0 100% /snap/qownnotes/2160
/dev/loop1 241664 241664 0 100% /snap/kde-frameworks-5/27
tmpfs 798164 0 798164 0% /run/user/0
tmpfs 798164 32 798132 1% /run/user/1000
/dev/loop9 87552 87552 0 100% /snap/qownnotes/2176
/dev/sda3 188669948 187132488 1537460 100% /media/kais/DATA
/dev/sdb1 15142960 2091904 13051056 14% /media/kais/STORE N GO
Als Hardware verwende ich:
-
Intel Core i3 v2348M gemäß
lscpu
:Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian Address sizes: 36 bits physical, 48 bits virtual CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 2 Core(s) per socket: 2 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 42 Model name: Intel(R) Core(TM) i3-2348M CPU @ 2.30GHz Stepping: 7 CPU MHz: 905.312 CPU max MHz: 2300.0000 CPU min MHz: 800.0000 BogoMIPS: 4589.49 Virtualization: VT-x L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 3072K NUMA node0 CPU(s): 0-3 Flags: fpu 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 rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx lahf_lm epb pti tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm arat pln pts
-
8 GB Arbeitsspeicher. (Siehe
htop
Ausgabe unten). - 99,83 MHz Mainboard-Busgeschwindigkeit
-
500 GB interne HDD – Das ist die S.M.A.R.T. Bericht vom
Betriebssystem:smartctl 6.6 2017-11-05 r4594 [x86_64-linux-4.15.0-33-generic] (local build) Copyright (C) 2002-17, Bruce Allen, Christian Franke, www.smartmontools.org === START OF INFORMATION SECTION === Model Family: Western Digital Blue Mobile Device Model: WDC WD5000LPVX-22V0TT0 Serial Number: WD-WXE1E13AAMR4 LU WWN Device Id: 5 0014ee 25db04ba7 Firmware Version: 01.01A01 User Capacity: 500,107,862,016 bytes [500 GB] Sector Sizes: 512 bytes logical, 4096 bytes physical Rotation Rate: 5400 rpm Device is: In smartctl database [for details use: -P show] ATA Version is: ACS-2 (minor revision not indicated) SATA Version is: SATA 3.0, 6.0 Gb/s (current: 6.0 Gb/s) Local Time is: Wed Aug 7 15:52:05 2019 CET SMART support is: Available - device has SMART capability. SMART support is: Enabled === START OF READ SMART DATA SECTION === SMART overall-health self-assessment test result: PASSED General SMART Values: Offline data collection status: (0x00) Offline data collection activity was never started. Auto Offline Data Collection: Disabled. Self-test execution status: ( 0) The previous self-test routine completed without error or no self-test has ever been run. Total time to complete Offline data collection: ( 8040) seconds. Offline data collection capabilities: (0x7b) SMART execute Offline immediate. Auto Offline data collection on/off support. Suspend Offline collection upon new command. Offline surface scan supported. Self-test supported. Conveyance Self-test supported. Selective Self-test supported. SMART capabilities: (0x0003) Saves SMART data before entering power-saving mode. Supports SMART auto save timer. Error logging capability: (0x01) Error logging supported. General Purpose Logging supported. Short self-test routine recommended polling time: ( 2) minutes. Extended self-test routine recommended polling time: ( 93) minutes. Conveyance self-test routine recommended polling time: ( 5) minutes. SCT capabilities: (0x7035) SCT Status supported. SCT Feature Control supported. SCT Data Table supported. SMART Attributes Data Structure revision number: 16 Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x002f 200 200 051 Pre-fail Always - 1 3 Spin_Up_Time 0x0027 149 143 021 Pre-fail Always - 1541 4 Start_Stop_Count 0x0032 057 057 000 Old_age Always - 43173 5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0 7 Seek_Error_Rate 0x002e 200 200 000 Old_age Always - 0 9 Power_On_Hours 0x0032 083 083 000 Old_age Always - 12797 10 Spin_Retry_Count 0x0032 100 100 000 Old_age Always - 0 11 Calibration_Retry_Count 0x0032 100 100 000 Old_age Always - 0 12 Power_Cycle_Count 0x0032 091 091 000 Old_age Always - 9496 191 G-Sense_Error_Rate 0x0032 001 001 000 Old_age Always - 250 192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 399 193 Load_Cycle_Count 0x0032 147 147 000 Old_age Always - 160989 194 Temperature_Celsius 0x0022 101 092 000 Old_age Always - 42 196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0 197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 0 198 Offline_Uncorrectable 0x0030 100 253 000 Old_age Offline - 0 199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 0 200 Multi_Zone_Error_Rate 0x0008 100 253 000 Old_age Offline - 0 SMART Error Log Version: 1 No Errors Logged SMART Self-test log structure revision number 1 No self-tests have been logged. [To run self-tests, use: smartctl -t] SMART Selective self-test log data structure revision number 1 SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS 1 0 0 Not_testing 2 0 0 Not_testing 3 0 0 Not_testing 4 0 0 Not_testing 5 0 0 Not_testing Selective self-test flags (0x0): After scanning selected spans, do NOT read-scan remainder of disk. If Selective self-test is pending on power-up, resume after 0 minute delay.
Dies sind die Ergebnisse der Ressourcennutzung pro htop
:
1 [||||| 14.1%] Tasks: 286, 1497 thr; 2 running
2 [||||| 13.2%] Load average: 3.00 4.97 6.09
3 [||||| 12.5%] Uptime: 3 days, 16:12:35
4 [||| 9.3%]
Mem[|||||||||||||||||||5.09G/7.61G]
Swp[|||||||||||||||||||3.68G/4.65G]
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
7006 jvb 20 0 6640M 102M 6780 S 5.3 1.3 18:53.18 java -Xmx3072m -X
8224 kais 20 0 4537M 771M 200M S 6.6 9.9 2h31:23 /usr/lib/firefox/
2299 kais 20 0 2958M 184M 42912 S 5.3 2.4 13:54.41 /usr/lib/firefox/
1216 root 20 0 519M 120M 94640 S 5.3 1.5 1h52:50 /usr/lib/xorg/Xor
28401 kais 20 0 3354M 584M 107M S 7.9 7.5 34:44.51 /usr/lib/firefox/
8439 kais 20 0 4537M 771M 200M S 4.6 9.9 37:06.21 /usr/lib/firefox/
8831 kais 20 0 3222M 351M 64828 R 4.0 4.5 11:19.87 /usr/lib/firefox/
7025 jvb 20 0 6640M 102M 6780 S 0.0 1.3 0:18.34 java -Xmx3072m -X
7027 jvb 20 0 6640M 102M 6780 S 0.0 1.3 0:18.05 java -Xmx3072m -X
5901 kais 20 0 7492 5612 2904 R 4.0 0.1 0:00.66 htop
5329 kais 20 0 547M 47456 38388 S 1.3 0.6 0:01.29 /usr/lib/gnome-te
13540 kais 20 0 2958M 184M 42912 S 2.0 2.4 0:06.25 /usr/lib/firefox/
16897 kais 20 0 904M 28292 18076 S 2.0 0.4 50:08.37 pavucontrol
17999 kais 20 0 2424M 29460 25380 S 1.3 0.4 52:41.73 /usr/bin/pulseaud
F1 Help F2 Setup F3 Search F4 Filter F5 Tree F6 SortBy F7 Nice - F8 Nice + F9 Kill F10 Quit
Das sind auch die Ergebnisse der VM-Statistiken, generiert durch den Befehl vmstat 5
.
AFAIK, Bloatware sollte das Betriebssystem nicht reaktionslos machen, daher würde ich nicht in Betracht ziehen oder sogar akzeptieren, dass die Bloatware die Hauptursache des Problems ist – da der Job des Betriebssystems Prozesse isoliert und Multitasking sicherstellt.
Verwandt:Fügen Sie mehr Speicherplatz für Linux von Windows in einer dual bootfähigen Maschine hinzu?Ich weiß nicht, ob dieses Problem betriebssystemspezifisch, hardwarespezifisch oder konfigurationsspezifisch ist.
Irgendwelche Ideen?
Akzeptierte Antwort:
Was kann Linux so unempfänglich machen?
Eine Überbelegung des verfügbaren RAMs, die eine große Menge an Swapping verursacht, kann dies definitiv bewirken. Denken Sie daran, dass E/A mit wahlfreiem Zugriff auf Ihrer mechanischen Festplatte das Bewegen eines Lese-/Schreibkopfs erfordert, der nur etwa 100 Suchvorgänge pro Sekunde durchführen kann.
Es ist üblich, dass Linux total zum Mittagessen ausgeht, wenn Sie RAM „zu viel“ überschreiben. Ich habe auch eine Spinny Disk und 8 GB RAM. Ich hatte Probleme mit ein paar Softwarestücken mit Speicherlecks. D.h. Ihre Speichernutzung wächst mit der Zeit und schrumpft nie, sodass die einzige Möglichkeit, sie zu kontrollieren, darin bestanden hätte, die Software zu stoppen und dann neu zu starten. Basierend auf den Erfahrungen, die ich dabei gemacht habe, bin ich nicht sehr überrascht, Verzögerungen von mehr als zehn Minuten zu hören, wenn Sie 3 GB+ Swap generieren.
Verwandte:Linux – Verwendung des Befehls sed für eine bestimmte Zeile?Sie werden dies nicht unbedingt in allen Fällen sehen, in denen Sie mehr als 3 GB Swap haben. Die Theorie besagt, dass das Schlüsselkonzept Thrashing ist. Wenn Sie andererseits versuchen, zwischen zwei verschiedenen Arbeitssätzen zu wechseln, und dafür 3 GB ein- und auswechseln müssen, dauert es bei 100 MB/s mindestens 60 Sekunden, selbst wenn das E/A-Muster perfekt optimiert werden kann. In der Praxis wird das E/A-Muster alles andere als optimal sein.
Nach den Schwierigkeiten, die ich damit hatte, formatierte ich meinen Auslagerungsspeicher auf 2 GB (mehrmals kleiner als zuvor), sodass das System nicht so tief auslagern konnte. Sie können dies sogar tun, ohne die Größe der Partition zu ändern, weil mkswap
nimmt einen optionalen Größenparameter.
Die grobe Balance besteht darin, dass der Arbeitsspeicher knapp wird und Prozesse beendet werden und das System so lange hängen bleibt, dass Sie aufgeben und trotzdem neu starten. Ich weiß nicht, ob eine 4-GB-Swap-Partition zu groß ist; Es kann davon abhängen, was Sie tun. Das Wichtigste ist, darauf zu achten, wann die Festplatte zu schwanken beginnt, Ihre Speichernutzung zu überprüfen und entsprechend zu reagieren.
Das Überprüfen der Speicherauslastung von Anwendungen mit mehreren Prozessen ist schwierig. Um die Speichernutzung pro Prozess anzuzeigen, ohne den gemeinsam genutzten Speicher doppelt zu zählen, können Sie sudo atop -R
verwenden , drücken Sie M und m , und sehen Sie in der PSIZE-Spalte nach. Sie können auch smem
verwenden . smem -t -P firefox
zeigt PSS aller Ihrer Firefox-Prozesse, gefolgt von einer Zeile mit Gesamt-PSS. Dies ist der richtige Ansatz, um die Gesamtspeichernutzung von Firefox- oder Chrome-basierten Browsern zu messen. (Obwohl es auch browserspezifische Funktionen zum Anzeigen der Speichernutzung gibt, die einzelne Registerkarten anzeigen).