Hohe Ram nutzung

Moin,

hab mir mal einen neuen Storj node erstellt unter Unraid.
Der Node läuft seit ein paar tagen und benötigt schon etwa 4gb ram.
Die Auslastung von der HDD und der CPU ist nicht sehr hoch. Der io wait ist meist unter 1%

Der Docker Container läuft auf einem btrfs mirror mit Sata ssds. Die dbs liegen auf einem ZFS Pool und die eigentlichen Daten liegen auf einer ext4 HDD. 8 TB sind zugewiesen.

Hatte die dbs auch vorher auf einem btrfs Pool liegen da war das gleiche Problem.
Allgemein ist kaum Auslastung der Laufwerke vorhanden und trotzdem wird viel Ram benötigt.

Oder kann das bei einem neuen Node normal sein und es geht nach einer zeit wieder runter.

Achja, es ist DDR4 ECC Ram wenn das eine Rolle spielt.

Vielleicht hat ja wer eine Idee woran ea liegen kann

Guten Tag,
Typischerweise weist eine hohe Speichernutzung auf ein langsames Festplattensubsystem hin – die Festplatte hat keine Zeit, eingehende Daten zu schreiben, daher sammelt der Knoten diese zunächst im RAM.
Ist dieses Datenlaufwerk mit SMR-Technologie hergestellt?
Wie ist dieses Laufwerk angeschlossen (USB2/USB3/SATA)?
Was zeigt der Befehl:

docker stats

Hallo,

es ist eine Toshiba MG10 Mit 20tb angebunden an einer sas3 backplane. Die backplane ist mit 8x12gbit angebunden am lsi 9300 hba.
Und der hba ist mit pcie 3.0 mit allen 8 lanes angebunden.
Was der Befehl anzeigt kann ich nachher auch noch sagen

4 GB RAM sind schon sehr hoch. Bei mir liegt diese oft bei 600 MB und das empfinde ich auch schon als sehr hoch.

Habe alle Festplatten als EXT4 formatiert, kein RAID, und keine DB-Auslagerung.

Hatte halt gelesen das es besser ist wenn man die dbs auf ne SSD packt.
Wenn sonst nix hilft kopiere ich die dbs halt auf die hdd. Das geht ja sehr schnell.

Und die HDD läuft auch mit ext4 ohne raid.

Mich wundert halt nur das der RAM so schnell voll läuft obwohl die HDD und CPU kaum Auslastung haben.

Wenn die SSD abraucht und die Consumer-SSDs sind sehr empfindlich, dann sind die dbs aber für die STORJ-Knoten weg. Die kann man zwar wiederherstellen, verliert aber den Großteil der Geschichte.

Also unbedingt ein Backup auf der HDD lassen.

Die liegen auf nem zfs mirror, dass ist kein problem wenn eine mal ausfallen sollte.

Werde des nachher sonst mal testen.

Einmal docker stats

CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
284d39d530d2 storj 0.38% 5.177GiB / 251.6GiB 2.06% 92.6GB / 12.7GB 2.62GB / 96.3GB 31

könnte es sonst noch daran liegen das 2 Nodes auf einer HDD laufen?
könnte sonst einen auf eine andere HDD migrieren.

hab mal die dbs auf die HDD gelegt. Bei dem Starten des Nodes hat er sich binnen Sekunden direkt 600mb RAM gegönnt.
Kopiere jetzt mal alles vom zweiten Node auf eine andere HDD, glaube aber weniger das es daran liegt, die ganze Auslastung allgemein ist recht niedrig.

nun, das sollte man vermeiden, wenn es kein raid ist…

kann es sein das sich linux prinzipiell so 2% ram als puffer gönnt?

ich mein bei extravaganten 256GB fällt das ja praktisch nicht ins gewicht.

Dies stellt einen ToS-Verstoß dar. Sie sollten dieselbe Festplatte nicht für mehr als einen Knoten verwenden. Aber Sie haben bereits eine Strafe in Form eines extrem hohen Speicherverbrauchs erhalten.
Ich würde empfehlen, dass Sie für Ihre Knoten unterschiedliche Festplatten verwenden – jeder Knoten sollte auf einer eigenen Festplatte ausgeführt werden.
Da Sie die Datenbank auf ZFS gehostet haben, ist es durchaus möglich, dass der Speicherverbrauch viel höher ist: ZFS ist ohne spezielle Konfiguration langsamer als ext4.

Hab die Node auf eine andere HDD mit ext4 migriert und nach 12 Stunden sind fast 1gb ram wieder belegt. Hab die dbs auch auf der HDD liegen.

Bekannt ist lediglich, dass eine hohe Speicherauslastung immer mit einem langsamen Festplattensubsystem einhergeht. Irgendwo gibt es Verzögerungen, die IOPS reduzieren und die Latenz erhöhen.
Möglicherweise sind an dieser Festplatte Defekte oder Probleme mit dem Kabel vorhanden?
Was zeigt S.M.A.R.T. an?

Einmal ein kurzer smart check. Kann sonst noch den größeren smart check machen. Dass kann dann was dauern.

smartctl 7.3 2022-02-28 r5338 [x86_64-linux-6.1.49-Unraid] (local build)
Copyright (C) 2002-22, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family: Toshiba MG10ACA… Enterprise Capacity HDD
Device Model: TOSHIBA MG10ACA20TE
Serial Number:
LU WWN Device Id:
Firmware Version: 0102
User Capacity: 20,000,588,955,648 bytes [20.0 TB]
Sector Sizes: 512 bytes logical, 4096 bytes physical
Rotation Rate: 7200 rpm
Form Factor: 3.5 inches
Device is: In smartctl database 7.3/5533
ATA Version is: ACS-4 T13/BSR INCITS 529 revision 5
SATA Version is: SATA 3.3, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is: Tue Sep 12 21:01:07 2023 PDT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
AAM feature is: Unavailable
APM level is: 128 (minimum power consumption without standby)
Rd look-ahead is: Enabled
Write cache is: Enabled
DSN feature is: Disabled
ATA Security is: Disabled, NOT FROZEN [SEC1]
Wt Cache Reorder: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status: (0x82) Offline data collection activity
was completed without error.
Auto Offline Data Collection: Enabled.
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: ( 120) seconds.
Offline data collection
capabilities: (0x5b) SMART execute Offline immediate.
Auto Offline data collection on/off support.
Suspend Offline collection upon new
command.
Offline surface scan supported.
Self-test supported.
No 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: (1679) minutes.
SCT capabilities: (0x003d) SCT Status supported.
SCT Error Recovery Control 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 FLAGS VALUE WORST THRESH FAIL RAW_VALUE
1 Raw_Read_Error_Rate PO-R-- 100 100 050 - 0
2 Throughput_Performance P-S— 100 100 050 - 0
3 Spin_Up_Time POS–K 100 100 001 - 9125
4 Start_Stop_Count -O–CK 100 100 000 - 10
5 Reallocated_Sector_Ct PO–CK 100 100 010 - 0
7 Seek_Error_Rate PO-R-- 100 100 050 - 0
8 Seek_Time_Performance P-S— 100 100 050 - 0
9 Power_On_Hours -O–CK 098 098 000 - 926
10 Spin_Retry_Count PO–CK 100 100 030 - 0
12 Power_Cycle_Count -O–CK 100 100 000 - 10
23 Helium_Condition_Lower PO—K 100 100 075 - 0
24 Helium_Condition_Upper PO—K 100 100 075 - 0
27 MAMR_Health_Monitor PO—K 100 100 030 - 330848
191 G-Sense_Error_Rate -O–CK 100 100 000 - 0
192 Power-Off_Retract_Count -O–CK 100 100 000 - 9
193 Load_Cycle_Count -O–CK 100 100 000 - 26
194 Temperature_Celsius -O—K 100 100 000 - 32 (Min/Max 19/40)
196 Reallocated_Event_Count PO–CK 100 100 010 - 0
197 Current_Pending_Sector -O–CK 100 100 000 - 0
198 Offline_Uncorrectable ----CK 100 100 000 - 0
199 UDMA_CRC_Error_Count -O–CK 200 200 000 - 0
220 Disk_Shift -O---- 100 100 000 - 524288
222 Loaded_Hours -O–CK 100 100 000 - 212
226 Load-in_Time -OS–K 100 100 000 - 631
240 Head_Flying_Hours P----- 100 100 001 - 0
241 Total_LBAs_Written -O–CK 100 100 000 - 39618556640
242 Total_LBAs_Read -O–CK 100 100 000 - 78140695622
||||||_ K auto-keep
|||||__ C event count
||||___ R error rate
|||____ S speed/performance
||_____ O updated online
|______ P prefailure warning

General Purpose Log Directory Version 1
SMART Log Directory Version 1 [multi-sector log support]
Address Access R/W Size Description
0x00 GPL,SL R/O 1 Log Directory
0x01 SL R/O 1 Summary SMART error log
0x02 SL R/O 51 Comprehensive SMART error log
0x03 GPL R/O 5 Ext. Comprehensive SMART error log
0x04 GPL,SL R/O 8 Device Statistics log
0x06 SL R/O 1 SMART self-test log
0x07 GPL R/O 1 Extended self-test log
0x08 GPL R/O 2 Power Conditions log
0x09 SL R/W 1 Selective self-test log
0x0a GPL R/W 2 Device Statistics Notification
0x0c GPL R/O 513 Pending Defects log
0x10 GPL R/O 1 NCQ Command Error log
0x11 GPL R/O 1 SATA Phy Event Counters log
0x24 GPL R/O 65520 Current Device Internal Status Data log
0x25 GPL R/O 65520 Saved Device Internal Status Data log
0x2f GPL - 1 Set Sector Configuration
0x30 GPL,SL R/O 9 IDENTIFY DEVICE data log
0x80-0x9f GPL,SL R/W 16 Host vendor specific log
0xab GPL VS 1024 Device vendor specific log
0xae GPL VS 25 Device vendor specific log
0xe0 GPL,SL R/W 1 SCT Command/Status
0xe1 GPL,SL R/W 1 SCT Data Transfer

SMART Extended Comprehensive Error Log Version: 1 (5 sectors)
No Errors Logged

SMART Extended Self-test Log Version: 1 (1 sectors)
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error

1 Short offline Completed without error 00% 926 -

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.

SCT Status Version: 3
SCT Version (vendor specific): 1 (0x0001)
Device State: Active (0)
Current Temperature: 32 Celsius
Power Cycle Min/Max Temperature: 26/35 Celsius
Lifetime Min/Max Temperature: 19/40 Celsius
Specified Max Operating Temperature: 60 Celsius
Under/Over Temperature Limit Count: 0/0
SMART Status: 0xc24f (PASSED)
Vendor specific:
00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

SCT Temperature History Version: 2
Temperature Sampling Period: 1 minute
Temperature Logging Interval: 1 minute
Min/Max recommended Temperature: 10/40 Celsius
Min/Max Temperature Limit: 5/60 Celsius
Temperature History Size (Index): 478 (182)

Index Estimated Time Temperature Celsius
183 2023-09-12 13:04 34 ***************
… …( 64 skipped). … ***************
248 2023-09-12 14:09 34 ***************
249 2023-09-12 14:10 33 **************
250 2023-09-12 14:11 34 ***************
… …( 3 skipped). … ***************
254 2023-09-12 14:15 34 ***************
255 2023-09-12 14:16 33 **************
256 2023-09-12 14:17 34 ***************
… …( 3 skipped). … ***************
260 2023-09-12 14:21 34 ***************
261 2023-09-12 14:22 33 **************
262 2023-09-12 14:23 34 ***************
… …( 2 skipped). … ***************
265 2023-09-12 14:26 34 ***************
266 2023-09-12 14:27 33 **************
267 2023-09-12 14:28 34 ***************
268 2023-09-12 14:29 34 ***************
269 2023-09-12 14:30 34 ***************
270 2023-09-12 14:31 33 **************
271 2023-09-12 14:32 33 **************
272 2023-09-12 14:33 33 **************
273 2023-09-12 14:34 34 ***************
… …( 17 skipped). … ***************
291 2023-09-12 14:52 34 ***************
292 2023-09-12 14:53 33 **************
293 2023-09-12 14:54 34 ***************
294 2023-09-12 14:55 34 ***************
295 2023-09-12 14:56 34 ***************
296 2023-09-12 14:57 33 **************
297 2023-09-12 14:58 33 **************
298 2023-09-12 14:59 34 ***************
299 2023-09-12 15:00 34 ***************
300 2023-09-12 15:01 33 **************
301 2023-09-12 15:02 34 ***************
302 2023-09-12 15:03 34 ***************
303 2023-09-12 15:04 33 **************
… …( 3 skipped). … **************
307 2023-09-12 15:08 33 **************
308 2023-09-12 15:09 34 ***************
309 2023-09-12 15:10 34 ***************
310 2023-09-12 15:11 33 **************
… …( 3 skipped). … **************
314 2023-09-12 15:15 33 **************
315 2023-09-12 15:16 34 ***************
316 2023-09-12 15:17 33 **************
317 2023-09-12 15:18 33 **************
318 2023-09-12 15:19 34 ***************
319 2023-09-12 15:20 33 **************
320 2023-09-12 15:21 34 ***************
321 2023-09-12 15:22 33 **************
… …( 2 skipped). … **************
324 2023-09-12 15:25 33 **************
325 2023-09-12 15:26 34 ***************
326 2023-09-12 15:27 33 **************
… …( 9 skipped). … **************
336 2023-09-12 15:37 33 **************
337 2023-09-12 15:38 34 ***************
338 2023-09-12 15:39 33 **************
… …( 2 skipped). … **************
341 2023-09-12 15:42 33 **************
342 2023-09-12 15:43 34 ***************
343 2023-09-12 15:44 34 ***************
344 2023-09-12 15:45 34 ***************
345 2023-09-12 15:46 33 **************
346 2023-09-12 15:47 34 ***************
347 2023-09-12 15:48 33 **************
… …( 3 skipped). … **************
351 2023-09-12 15:52 33 **************
352 2023-09-12 15:53 34 ***************
353 2023-09-12 15:54 34 ***************
354 2023-09-12 15:55 33 **************
355 2023-09-12 15:56 33 **************
356 2023-09-12 15:57 34 ***************
357 2023-09-12 15:58 33 **************
… …( 4 skipped). … **************
362 2023-09-12 16:03 33 **************
363 2023-09-12 16:04 34 ***************
… …( 29 skipped). … ***************
393 2023-09-12 16:34 34 ***************
394 2023-09-12 16:35 33 **************
… …( 13 skipped). … **************
408 2023-09-12 16:49 33 **************
409 2023-09-12 16:50 32 *************
… …( 13 skipped). … *************
423 2023-09-12 17:04 32 *************
424 2023-09-12 17:05 31 ************
425 2023-09-12 17:06 31 ************
426 2023-09-12 17:07 32 *************
427 2023-09-12 17:08 31 ************
… …(176 skipped). … ************
126 2023-09-12 20:05 31 ************
127 2023-09-12 20:06 32 *************
… …( 7 skipped). … *************
135 2023-09-12 20:14 32 *************
136 2023-09-12 20:15 33 **************
… …( 3 skipped). … **************
140 2023-09-12 20:19 33 **************
141 2023-09-12 20:20 34 ***************
… …( 2 skipped). … ***************
144 2023-09-12 20:23 34 ***************
145 2023-09-12 20:24 33 **************
… …( 15 skipped). … **************
161 2023-09-12 20:40 33 **************
162 2023-09-12 20:41 32 *************
… …( 11 skipped). … *************
174 2023-09-12 20:53 32 *************
175 2023-09-12 20:54 31 ************
… …( 4 skipped). … ************
180 2023-09-12 20:59 31 ************
181 2023-09-12 21:00 32 *************
182 2023-09-12 21:01 32 *************

SCT Error Recovery Control:
Read: Disabled
Write: Disabled

Device Statistics (GP Log 0x04)
Page Offset Size Value Flags Description
0x01 ===== = = === == General Statistics (rev 3) ==
0x01 0x008 4 10 — Lifetime Power-On Resets
0x01 0x010 4 926 — Power-on Hours
0x01 0x018 6 39618556640 — Logical Sectors Written
0x01 0x020 6 39650924 — Number of Write Commands
0x01 0x028 6 78140695622 — Logical Sectors Read
0x01 0x030 6 94225101 — Number of Read Commands
0x01 0x038 6 3333600000 — Date and Time TimeStamp
0x01 0x040 4 0 — Pending Error Count
0x02 ===== = = === == Free-Fall Statistics (rev 1) ==
0x02 0x010 4 0 — Overlimit Shock Events
0x03 ===== = = === == Rotating Media Statistics (rev 1) ==
0x03 0x008 4 926 — Spindle Motor Power-on Hours
0x03 0x010 4 212 — Head Flying Hours
0x03 0x018 4 26 — Head Load Events
0x03 0x020 4 0 — Number of Reallocated Logical Sectors
0x03 0x028 4 0 — Read Recovery Attempts
0x03 0x030 4 0 — Number of Mechanical Start Failures
0x03 0x038 4 0 — Number of Realloc. Candidate Logical Sectors
0x03 0x040 4 9 — Number of High Priority Unload Events
0x04 ===== = = === == General Errors Statistics (rev 1) ==
0x04 0x008 4 0 — Number of Reported Uncorrectable Errors
0x04 0x010 4 0 — Resets Between Cmd Acceptance and Completion
0x04 0x018 4 0 -D- Physical Element Status Changed
0x05 ===== = = === == Temperature Statistics (rev 1) ==
0x05 0x008 1 32 — Current Temperature
0x05 0x010 1 32 N-- Average Short Term Temperature
0x05 0x018 1 - N-- Average Long Term Temperature
0x05 0x020 1 40 — Highest Temperature
0x05 0x028 1 19 — Lowest Temperature
0x05 0x030 1 34 N-- Highest Average Short Term Temperature
0x05 0x038 1 26 N-- Lowest Average Short Term Temperature
0x05 0x040 1 - N-- Highest Average Long Term Temperature
0x05 0x048 1 - N-- Lowest Average Long Term Temperature
0x05 0x050 4 0 — Time in Over-Temperature
0x05 0x058 1 60 — Specified Maximum Operating Temperature
0x05 0x060 4 0 — Time in Under-Temperature
0x05 0x068 1 5 — Specified Minimum Operating Temperature
0x06 ===== = = === == Transport Statistics (rev 1) ==
0x06 0x008 4 0 — Number of Hardware Resets
0x06 0x010 4 0 — Number of ASR Events
0x06 0x018 4 0 — Number of Interface CRC Errors
0x07 ===== = = === == Solid State Device Statistics (rev 1) ==
|||_ C monitored condition met
||__ D supports DSN
|___ N normalized value

Pending Defects log (GP Log 0x0c)
No Defects Logged

SATA Phy Event Counters (GP Log 0x11)
ID Size Value Description
0x0001 4 0 Command failed due to ICRC error
0x0002 4 0 R_ERR response for data FIS
0x0003 4 0 R_ERR response for device-to-host data FIS
0x0004 4 0 R_ERR response for host-to-device data FIS
0x0005 4 0 R_ERR response for non-data FIS
0x0006 4 0 R_ERR response for device-to-host non-data FIS
0x0007 4 0 R_ERR response for host-to-device non-data FIS
0x0008 4 0 Device-to-host non-data FIS retries
0x0009 4 0 Transition from drive PhyRdy to drive PhyNRdy
0x000a 4 0 Device-to-host register FISes sent due to a COMRESET
0x000b 4 0 CRC errors within host-to-device FIS
0x000d 4 0 Non-CRC errors within host-to-device FIS
0x000f 4 0 R_ERR response for host-to-device data FIS, CRC
0x0010 4 0 R_ERR response for host-to-device data FIS, non-CRC
0x0012 4 0 R_ERR response for host-to-device non-data FIS, CRC
0x0013 4 0 R_ERR response for host-to-device non-data FIS, non-CRC

also auch wenn nur ein Node auf einer HDD läuft und sonst nichts steigt die RAM Nutzung schon auf über 1,3 gb nach nicht mal einem Tag.

wenn ich z.B. schaue mit dem Befehl iostat 2

zeigt der bei den iowait meist unter 1% an.

und mit iostat -d zeigt er das an

Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd
sdh 2.24 1.30 216.51 0.00 1212581 201985736 0

Oder kann es daran liegen das die Identity Ordner auch auf nem SSD Pool liegen, und die sollten auch auf der selben HDD liegen?

also wenn kein dienst läuft benötigt das System auch nahezu kein RAM, klar kann man sagen es fällt nicht ins Gewicht bei der Menge, allerdings möchte ich noch andere Sachen auf dem Server betreiben und wenn die RAM Nutzung nach ein paar Tagen nicht die Anstalt macht sich zumindest einzupendeln ist das nicht soo gut.
Hab jetzt mal die DBs und identity normal auf die HDD geschoben und beobachte das mal.
Nach einer Stunde hat er jetzt 180mb an RAM in gebrauch. mal sehen wie es sich entwickelt.

Wie erwartet erhöhte das Vorhandensein der Datenbank auf der ZFS-Festplatte den Speicherverbrauch. 180 MB scheinen korrekter zu sein. Bitte teilen Sie mir mit, ob der Speicherverbrauch nach einem Tag gestiegen ist.

Also jetzt hat er 1,1gb RAM nötig.
Es könnte ja auch sein das Linux den RAM als schreib cache nutzt und mit einrechnet.

Wenn man schaut mit.
ps aux | awk ‘{print $6/1024 " MB\t\t" $11}’ | sort -n

Dann zeigt der etwa 100mb RAM Nutzung an.

Aktuell ist folgendes eingestellt,

vm.dirty_background_bytes = 0
vm.dirty_background_ratio = 10
vm.dirty_bytes = 0
vm.dirty_expire_centisecs = 3000
vm.dirty_ratio = 15
vm.dirty_writeback_centisecs = 500
vm.dirtytime_expire_seconds = 43200

Somit darf doch theoretisch bis 15% freier RAM genutzt werden. Also etwa bis 38gb.

Dann rechnet wahrscheinlich der Docker Containter alles mit ein.

Habe jetzt mal die

vm.dirtytime_expire_seconds

Niedriger gestellt mal schauen ob es langsam nach unten geht.

Immer noch größer als üblich, aber viel besser.
Der Befehl docker stats sollte die tatsächliche Speichernutzung des Containers anzeigen.