Jump to content

mgutt

Moderators
  • Posts

    11,351
  • Joined

  • Last visited

  • Days Won

    124

Everything posted by mgutt

  1. @falconexe You have two E5-2620 CPUs, correct? This means ≈865 Passmark points per core. I had an Atom C3758 with ≈584 points per core resulting 450 MB/s. And since today I have an i3-8100 with ≈1538 points per core and now I'm reaching 700 MB/s to \\tower\share and 800 MB/s to \\tower\cache\share (same 10g cards, same 10g switch, same NVMe, same cables). My conclusion: There is no "overhead", it's simply a non existing multi threading. I bet my other problem (low transfer speeds with many parallel open SMB sessions) is much less present now, too.
  2. I asked this question by myself and found out that this message is created through the underlying Slackware: https://www.linuxquestions.org/questions/slackware-14/locking-all-cpu's-to-their-maximum-frequency-4175607506/ So I checked my file as follows: cat /etc/rc.d/rc.cpufreq #!/bin/sh # # rc.cpufreq: Settings for CPU frequency and voltage scaling in the kernel. # For more information, see the kernel documentation in # /usr/src/linux/Documentation/cpu-freq/ # Default CPU scaling governor to try. Some possible choices are: # performance: The CPUfreq governor "performance" sets the CPU statically # to the highest frequency within the borders of scaling_min_freq # and scaling_max_freq. # powersave: The CPUfreq governor "powersave" sets the CPU statically to the # lowest frequency within the borders of scaling_min_freq and # scaling_max_freq. # userspace: The CPUfreq governor "userspace" allows the user, or any # userspace program running with UID "root", to set the CPU to a # specific frequency by making a sysfs file "scaling_setspeed" # available in the CPU-device directory. # ondemand: The CPUfreq governor "ondemand" sets the CPU depending on the # current usage. # conservative: The CPUfreq governor "conservative", much like the "ondemand" # governor, sets the CPU depending on the current usage. It # differs in behaviour in that it gracefully increases and # decreases the CPU speed rather than jumping to max speed the # moment there is any load on the CPU. # schedutil: The CPUfreq governor "schedutil" aims at better integration with # the Linux kernel scheduler. Load estimation is achieved through # the scheduler's Per-Entity Load Tracking (PELT) mechanism, which # also provides information about the recent load. SCALING_GOVERNOR=ondemand # For CPUs using intel_pstate, always use the performance governor. This also # provides power savings on Intel processors while avoiding the ramp-up lag # present when using the powersave governor (which is the default if ondemand # is requested on these machines): if [ "$(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver 2> /dev/null)" = "intel_pstate" ]; then SCALING_GOVERNOR="performance" fi # If rc.cpufreq is given an option, use it for the CPU scaling governor instead: if [ ! -z "$1" -a "$1" != "start" ]; then SCALING_GOVERNOR=$1 fi # To force a particular option without having to edit this file, uncomment the # line in /etc/default/cpufreq and edit it to select the desired option: if [ -r /etc/default/cpufreq ]; then . /etc/default/cpufreq fi # If you need to load a specific CPUFreq driver, load it here. Most likely you don't. #/sbin/modprobe acpi-cpufreq # Attempt to apply the CPU scaling governor setting. This may or may not # actually override the default value depending on if the choice is supported # by the architecture, processor, or underlying CPUFreq driver. For example, # processors that use the Intel P-state driver will only be able to set # performance or powersave here. echo $SCALING_GOVERNOR | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor 1> /dev/null 2> /dev/null # Report what CPU scaling governor is in use after applying the setting: if [ -r /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor ]; then echo "Enabled CPU frequency scaling governor: $(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor)" fi As you can see the default is "ondemand", but then follows this condition which sets "performance" as default: # For CPUs using intel_pstate, always use the performance governor. This also # provides power savings on Intel processors while avoiding the ramp-up lag # present when using the powersave governor By that explanation its not recommened to set something else then "performance" for an Intel cpu. I had problems with "powersave" in the past, but this was with an Intel Atom CPU (now I'm having an i3): https://forums.plex.tv/t/cpu-scaling-governor-powersave-causes-massive-buffering/604018 I never experienced similar problems with "ondemand", so I wanted this gorvernor for the i3, too. Nevertheless I checked the active governor as follows: cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor performance Ok, performance has been set as expected. Lets try to overwrite it: /etc/rc.d/rc.cpufreq ondemand Enabled CPU frequency scaling governor: performance Hmm.. does not work. Seems to be this condition: # ... For example, # processors that use the Intel P-state driver will only be able to set # performance or powersave here. Lets try it out: cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor performance performance performance performance This means our cpu cores support only "performance"?! EDIT: Yes, recent Intel CPUs do only support performance or powersave (with massive lags): https://wiki.archlinux.org/index.php/CPU_frequency_scaling#Scaling_governors And the most important part: The performance governor should give better power saving functionality than the old ondemand governor. For me it does not really look like a proper p-state handling as my cpus maximum is 3.6Ghz and with really low load it never reduces the frequency: So lets try to find out what goes wrong here. At first the pstate values: ls /sys/devices/system/cpu/intel_pstate/* /sys/devices/system/cpu/intel_pstate/hwp_dynamic_boost /sys/devices/system/cpu/intel_pstate/num_pstates /sys/devices/system/cpu/intel_pstate/max_perf_pct /sys/devices/system/cpu/intel_pstate/status /sys/devices/system/cpu/intel_pstate/min_perf_pct /sys/devices/system/cpu/intel_pstate/turbo_pct /sys/devices/system/cpu/intel_pstate/no_turbo root@Thoth:~# cat /sys/devices/system/cpu/intel_pstate/hwp_dynamic_boost 0 root@Thoth:~# cat /sys/devices/system/cpu/intel_pstate/max_perf_pct 100 root@Thoth:~# cat /sys/devices/system/cpu/intel_pstate/min_perf_pct 22 root@Thoth:~# cat /sys/devices/system/cpu/intel_pstate/no_turbo 1 root@Thoth:~# cat /sys/devices/system/cpu/intel_pstate/num_pstates 29 root@Thoth:~# cat /sys/devices/system/cpu/intel_pstate/status active root@Thoth:~# cat /sys/devices/system/cpu/intel_pstate/turbo_pct 0 Explanations can be found here: https://www.kernel.org/doc/html/v4.12/admin-guide/pm/intel_pstate.html#user-space-interface-in-sysfs For example num_pstates returns the amount of p-states supported by the cpu. As we can see we have 29 for my cpu. And we know that the status is "active" and this means changing the p-states should work, but we do not know how: https://www.kernel.org/doc/html/v4.12/admin-guide/pm/intel_pstate.html#active-mode do we have Active with HWP or not? I found this sentence: https://01.org/linuxgraphics/gfx-docs/drm/admin-guide/pm/intel_pstate.html#user-space-interface-in-sysfs Our value is zero. What could that mean? Another hint that we are using Active with HWP is this explanation: https://www.kernel.org/doc/html/v4.12/admin-guide/pm/intel_pstate.html#energy-vs-performance-hints Lets check if they are present: Both are present so we can be sure. We use Active Mode with HWP: https://www.kernel.org/doc/html/v4.12/admin-guide/pm/intel_pstate.html#active-mode-with-hwp I disabled all my writings to the unraid server and stopped all disks. In this state the server consumes 24W. Performance still does not downclock: watch -n1 "cat /proc/cpuinfo | grep \"^[c]pu MHz\"" cpu MHz : 3600.114 cpu MHz : 3600.910 cpu MHz : 3601.040 cpu MHz : 3600.269 Does HWP + Performance mean it never changes the p-state? Which algorithm is used and where can I find it or influence it? I tried it with powersave /etc/rc.d/rc.cpufreq powersave Enabled CPU frequency scaling governor: powersave I don't know why, but all disks started with several seconds delay and very small writes (1,4 kB/s) were done. I waited one minute and spun them down again. The power consumption stayed at 24W. The frequency is only a little bit lower watch -n10 "cat /proc/cpuinfo | grep \"^[c]pu MHz\"" cpu MHz : 3263.100 cpu MHz : 3021.631 cpu MHz : 3252.913 cpu MHz : 2819.033 I checked the available HWP profiles and which one is used: cat /sys/devices/system/cpu/cpu0/cpufreq/energy_performance_preference balance_performance cat /sys/devices/system/cpu/cpu0/cpufreq/energy_performance_available_preferences default performance balance_performance balance_power power I did not found any documentation about these variables. Only this answer to the same question: https://superuser.com/a/1449813/129262 So lets try them out: echo "power" > /sys/devices/system/cpu/cpu0/cpufreq/energy_performance_preference echo "power" > /sys/devices/system/cpu/cpu1/cpufreq/energy_performance_preference echo "power" > /sys/devices/system/cpu/cpu2/cpufreq/energy_performance_preference echo "power" > /sys/devices/system/cpu/cpu3/cpufreq/energy_performance_preference cat /sys/devices/system/cpu/cpu*/cpufreq/energy_performance_preference power power power power I tested "power" and "balance_power". No difference in power consumption. If I set "/etc/rc.d/rc.cpufreq" to "performance" the "/sys/devices/system/cpu/cpu0/cpufreq/energy_performance_preference" becomes "performance". If I set it to "powersave" the preference becomes "balance_performance". Conclusion: Although "performance" is set, there is no room to save more energy in an idle state. "powersave" seems only influence the time in which the core stays in a slower state which could cause latency issues, but the lowest p-state is the same for all profiles. This is completely different to my Atom CPU, which directly showed a lower energy consumption after changing the profile to "ondemand". So it depends on the used CPU. But finally "ondemand" is set if its present so no further optimization seems to be needed. The next we could check are the c-states. For this I used "powertop" from the nerd pack. It seems we have the best results as c-state C10 is used most of the time:
  3. 1.) Passen die Dateien denn noch auf den Cache? 2.) Hast du eine hochwertige SSD mit DRAM und SLC Cache verbaut? 3.) Hast du Trim aktiv und passt dein Interval zu deinem Mover Interval (also wenn leer dann Trim)? Falls das alles passt, könnten es noch diese zwei Bugs sein: 4.) Unraid skaliert extrem schlecht, wenn zu viele offene SMB Sessions vorhanden sind. Teste es wie folgt: Starte auf dem Windows Client, der gerade läuft, Powershell als Admin. Dann führe "Get-SmbConnection" aus. Dann siehst du bei NumOpens wie viele Sessions gerade offen sind. Das Problem diskutiere ich gerade hier. Dieses Problem kannst du umgehen, in dem du eine zusätzliche Verbindung zu //server.ip.adresse/sharename aufbaust und dort einen Teil der Dateien hinkopierst Du kannst auch mehrere zu //tower1, //tower2, //tower3, usw aufbauen. Einfach in der hosts Datei von Windows mehrere Einträge anlegen. Danach kopierst du dann einfach verschiedene Ordner auf die "verschiedenen" Server. 5.) Das Kopieren auf einen Share produziert einen massiven Overhead. Man kann diesen Overhead umgehen, in dem man in Unraid die Disk-Shares aktiviert und nur die Cache-Disk freigibt. Wenn du nun auf \\tower\cache\sharename statt \\tower\sharename kopierst, umgehst du diesen Overhead. Das Problem wird hier diskutiert. Zuletzt noch ein Hinweis: 6.) Wenn man sehr viele Dateien auf ein Intranet- oder Internetziel übertragen möchte, sollte man sie vorher in eine Archivdatei (ZIP) packen. Der Overhead jeder Dateiübertragung macht sonst viel aus.
  4. Really good manual as you explain the steps and start testing modprobe before adding this line to the go file. But I still have a question. I did not execute the chmod. Is it really needed or only important for the go file? Edit: I did not add chmod to the go file, rebooted the server and hw transcoding still works?!
  5. Yes, this is only a temporary solution. Only for whom is interested: The usb adapters return different device ids ("jmicron_..." instead of "hgst_..."), so I needed to create a new array config and assign them in the correct order. Now they are in the correct order, but need a new parity calculation.
  6. I moved to another server by swapping the mainboard. As it has less SATA ports and my Port Multiplier isn't delivered by now I tried to connect two drives with USB3.0 to SATA adapters. But after rebooting those two drives are missing: If I understand my diagnostics logs correctly, the server completely does not find these mass storages. There is only one mass storage entry and this is the unraid flash drive. What could be the reason? Or do I need to enable something in the settings to use usb disks as part of the array? EDIT: Sorry, sometimes its needed to read a manual. For 3.5 inch drive I need to use an external power supply 😅
  7. I wanted to know which tmpfs (ramdisks) exist by default and which size they have: df -h Filesystem Size Used Avail Use% Mounted on rootfs 16G 764M 15G 5% / tmpfs 32M 292K 32M 1% /run devtmpfs 16G 0 16G 0% /dev tmpfs 16G 0 16G 0% /dev/shm cgroup_root 8.0M 0 8.0M 0% /sys/fs/cgroup tmpfs 128M 628K 128M 1% /var/log /dev/sda1 15G 254M 14G 2% /boot /dev/loop0 9.2M 9.2M 0 100% /lib/modules /dev/loop1 7.3M 7.3M 0 100% /lib/firmware /dev/md1 11T 9.9T 1.1T 91% /mnt/disk1 /dev/md2 11T 11T 809G 93% /mnt/disk2 /dev/md3 11T 9.9T 1.1T 91% /mnt/disk3 /dev/md4 11T 9.9T 1.1T 91% /mnt/disk4 /dev/md5 11T 9.9T 1.1T 91% /mnt/disk5 /dev/md6 11T 7.7T 3.3T 71% /mnt/disk6 /dev/md7 11T 5.0T 6.0T 46% /mnt/disk7 /dev/md8 11T 2.7T 8.3T 25% /mnt/disk8 /dev/md9 11T 7.4T 3.6T 68% /mnt/disk9 /dev/nvme0n1p1 932G 234G 698G 26% /mnt/cache shfs 99T 73T 26T 74% /mnt/user0 shfs 100T 73T 27T 74% /mnt/user /dev/loop2 20G 1.1G 19G 6% /var/lib/docker The main reason was to check how much size is set for /dev/shm as some people in the plex forums use this as transcoding path combined with this command: mount -o remount,size=8G /dev/shm As I have installed 32G RAM it seems that /dev/shm is limited to the size of my 16GB USB flash drive, correct? By that it would be possible to use /dev/shm/PlexRamScratch without the need of an additional script. What do you think? EDIT: After reading some websites I would say its not save to use /dev/shm as its the default shared memory in linux and not cleaned up by default. This means if other applications use this memory and its full because of Plex, this could result in performance problems or errors for other applications. So its better to use /tmp/PlexRamScratch as this would be an exclusive ramdisk for Plex alone. Does anyone know why most people suggest 4GB? I mean why isn't it 1GB or 8GB?
  8. Did you test powertop? I'm a little bit confused. Why are the Pkg(HW) stats and frequency stats empty?
  9. Look here: https://stackoverflow.com/q/13868821/318765 Another solution with counting instead of timestamp: https://stackoverflow.com/q/4126869/318765
  10. Something is really strange with my NIC settings. I restarted my server and it has connection through one 10G and 1G port. Then I try to apply the following default settings by adding "eth0" to "Ethernet NICS": After that I'm not able to reach the server anymore. Not through the 10G (eth0) and not through the 1G (eth1) port (both have different static IPs). I mean if my 10G card does not support this setting, why isn't the server reachable anymore through the 1G port (eth1)?! So I tried it through the server itself. Login with root and entered the following: Then re-applied the network settings: Now I'm able to open the WebGUI through both ports again. I opened the Tips and Tweaks NIC settings and it shows the following: Now I reboot unraid through the GUI. The terminal says "eth0 does not exist": Checking the GUI. 10G offline, 1G online. Rebooted again (without making any changes). No errors shown in the terminal. 10G and 1G are both online. So I re-checked the TipsAndTweaks page and now the status is different?! I opened the status page and something reversed my eth-order (usually eth0 was the 10g card): network.cfg looks as usual: root@Thoth:~# cat /boot/config/network.cfg # Generated settings: IFNAME[0]="eth0" PROTOCOL[0]="ipv4" USE_DHCP[0]="no" IPADDR[0]="192.168.178.9" NETMASK[0]="255.255.255.0" GATEWAY[0]="192.168.178.1" DNS_SERVER1="8.8.8.8" DNS_SERVER2="8.8.4.4" USE_DHCP6[0]="yes" DHCP6_KEEPRESOLV="yes" IFNAME[1]="eth1" PROTOCOL[1]="ipv4" USE_DHCP[1]="no" IPADDR[1]="192.168.178.10" NETMASK[1]="255.255.255.0" GATEWAY[1]="192.168.178.1" SYSNICS="2" So I checked network-rules.cfg: root@Thoth:~# cat /boot/config/network-rules.cfg # PCI device 0x1d6a:0x07b1 (atlantic) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="24:5e:be:44:2d:d4", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1" # PCI device 0x8086:0x15e4 (ixgbe) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="3c:ec:ef:01:a3:0d", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2" # PCI device 0x8086:0x15e4 (ixgbe) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="3c:ec:ef:01:a3:0f", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth4" # PCI device 0x8086:0x15e4 (ixgbe) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="3c:ec:ef:01:a3:0e", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3" # PCI device 0x8086:0x15e4 (ixgbe) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="3c:ec:ef:01:a3:0c", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" And now network-rules.cfg (backup from this morning) before the reboots: # PCI device 0x1d6a:0x07b1 (atlantic) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="24:5e:be:44:2d:d4", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" # PCI device 0x8086:0x15e4 (ixgbe) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="3c:ec:ef:01:a3:0d", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1" # PCI device 0x8086:0x15e4 (ixgbe) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="3c:ec:ef:01:a3:0e", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2" # PCI device 0x8086:0x15e4 (ixgbe) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="3c:ec:ef:01:a3:0c", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3" # PCI device 0x8086:0x15e4 (ixgbe) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="3c:ec:ef:01:a3:0f", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth4" It seems Unraid has changed something after it was not able to find "eth0" on my last boot and now tipsandtweaks shows the status of my 1G port. Ok, then reboot again. Maybe flow control will be enabled for the 1G port... nope still the same. And there is another thing different now. The CPU goverener is not set to "Performance" anymore: Shouldn't all these values be re-applied on reboot? EDIT: After several reboots and re-applying the 10G as eth0: I never set those values. This is really strange.
  11. Which rclone command are you using? Does this help? It's related to Google drive and happens because it's possible to have the same filename two times: https://forum.rclone.org/t/rclone-mount-google-drive-shows-empty-directory-which-is-not-empty/3838/6
  12. I guess the update filled the field with "eth0" but does not apply the setting as long the server isn't restarted. And it must be this setting as I can reproduce it.
  13. Beides ist korrekt. Die WebGUI kann ausschließlich vom Root-User geöffnet werden. Die Share-User sind dagegen nur für AFP/SMB da. Wie greifst du auf den Share mit dem Finder zu? Also welchen Unterordner? In Unraid gibt es ja die Möglichkeit sowohl Ordner als auch Disks freizugeben. Wenn du jetzt mit dem Finder zB auf "disk1" zugreifst, aber die Bilder noch auf dem SSD Cache liegen, wären sie ja im Ordner "cache" und daher nicht unter "disk1" zu sehen. Die andere Sache wären die bereits angesprochenen Rechte. Eventuell setzt Krusader einen Owner, der sich mit dem Standard-Owner von Unraid so beißt, dass die Dateien im Share über den Finder nicht angezeigt werden. Öffne am besten mal das Terminal (oben rechts): Dann lässt du dir mal die Rechte der Dateien unter /mnt/user/Bilder/ wie folgt anzeigen (und zeigst sie uns evtl mal): ls -l /mnt/user/Bilder Ordner sollten zB "drwxrwxrwx 1 nobody users" besitzen. Mehr Details bekommst du zB so: stat /mnt/user/Bilder/* Dann wird zB auch die ID des Users / der Gruppe ausgegeben "Access: (0777/drwxrwxrwx) Uid: ( 99/ nobody) Gid: ( 100/ users)". Und nun siehst du auch warum @DarkMan83 sagte, dass deine Krusader Einstellungen eigentlich richtig aussehen, denn in Docker wurde der User 99 und die Gruppe 100 hinterlegt. Es wäre also eigentlich komisch, wenn die kopierten Dateien andere Rechte hätten. Sollten die Rechte falsch sein, könntest du sie über die WebGUI korrigieren lassen: http://tower/Tools/DockerSafeNewPerms (Tools -> Docker Safe New Perms) Dann noch eine Frage, da ich bei Mac nicht fit bin. Nutzt du die SMB oder AFP Freigabe von Unraid oder vielleicht sogar beides? Hast du dann auch bei beiden Protokollen dem User die Lese- und Schreibrechte eingeräumt? Mach dazu evtl einen Screenshot von den Share-Einstellungen: http://tower/Shares/Share?name=Bilder P.S. nimm bei Krusader den Host Path 2 raus. Es ist gefährlich Dateien zwischen Disks und Shares zu verschieben. Arbeite lieber ausschließlich auf den Shares.
  14. Dass die Festplatte bei ihm noch ging, ist nicht ungewöhnlich. Sowohl die Festplatte als auch das Synology DSM merkt sich die fehlerhaften Sektoren und überspringt diese. Allerdings werden diese erst gefunden, wenn auf den Sektor geschrieben wird. Und während dem Betrieb wird das ja nur in einem kleinen Bereich gemacht, je nachdem wie viele Daten man auf die Festplatte(n) überträgt. Es kann also zB sein, dass die Platte zu 50% gefüllt ist und die restlichen 50% sind alles defekte Sektoren und die Festplatte zeigt 0 defekte Sektoren an. Als du nun die Platte bei Unraid eingesetzt hast, hat der Check jeden einzelnen Sektor geprüft und damit sind die defekten Sektoren überhaupt erst aufgefallen. Ihm wäre das auch aufgefallen, wenn er eine Paritätsprüfung durchgeführt hätte. Das erfolgt bei Synology meine ich 1x pro Monat, wobei er das im Aufgabenplaner auch deaktiviert haben könnte. Hier siehst du das im Screenshot. Nennt sich "Full Test": https://www.synology-forum.de/threads/regelmaessige-paritaet-konsistenzpruefung-zu-empfehlen.56955/ Es wäre aber auch möglich, dass die Festplatte erst beim Transport kaputt gegangen ist. Genau wissen kann man es nicht. Die häufigen Start/Stop-Zyklen finde ich übrigens auch nicht ungewöhnlich. Bei 12107 Stunden und 24780 Neustarts, hat er vermutlich die Option "Ruhezustand der Festplatte" auf 10-30 Minuten eingestellt: https://www.computerbase.de/forum/threads/synology-ds216j-ignoriert-ruhezustands-einstellungen.1723330/#post-20612868 Bei Synology kommt es immer wieder vor, dass die Platten zwar schlafen gehen, dann aber nicht lange in dem Zustand bleiben. Die Tage hatte ich noch eine DS918+ hier und die hatte das genauso. Nach 10 Minuten gingen die Platten schlafen und wenige Minuten später wachten sie auf, weil irgendein Netzwerk-Traffic dies auslöste. Auch ein Grund warum ich jetzt einen Unraid-Server habe. Warum du allerdings diese Platte überhaupt ins Array geholt hast, erschließt sich mir nicht. Zum Zeitpunkt als Unraid sie formatiert hat, gab es doch schon die Fehler oder nicht? Ab da hättest du die Platte wieder ausbauen sollen und sicher nicht ins Array aufnehmen dürfen. Kaputt ist nun mal kaputt. Eine HDD sollte einfach gar keine defekten Sektoren haben.
  15. Nur zum Verständnis. Wenn das Array gestoppt wurde, siehst du manchmal nicht alle Platten? Das klingt mir eher nach reinen Hardware-Problemen. Entweder geht ein Treiber oder er geht nicht. Dass er mitten im Betrieb aussteigt, halte ich für unwahrscheinlich. Die Erkennung der Platten dürfte außerdem direkt vom darunter liegenden Betriebssystem, also Slackware (wenn man jetzt von den Treibern für die Controller absieht). Wenn die Platten aussteigen, sind das dann eigentlich immer alle Platten, die an einem Controller hängen bzw hängen alle Platten da dran? Hast du es mal getestet eine oder mehrere Platten per SATA direkt mit dem Board zu verbinden oder vielleicht sogar über USB? Worüber ist Unraid vom Prinzip egal. Eventuell hast du aber auch gar keine Probleme beim Controller, sondern mit dem Netzteil. Bedenke, dass die Platten je nach Zugriff unterschiedlich viel Strom aufnehmen. Vielleicht verursachen bestimmte Spitzen, dass der Controller aussteigt.
  16. After an update of tips and tweaks and rebooting my machine several days later this bug (?) appeared again (this time my unraid server was not accessible through the local network, too): My "eth0" is a QNAP 10G RJ45 PCIe card and it seems that it is not compatible with the buffer/flow control setting made by Tips and Tweaks. I think the plugin should not pre-fill the "Ethernet NICS" field with "eth0". How could I find/debug the ethernet settings made by Tips and Tweaks? Maybe I can find out which setting causes the "offline problem"?
  17. At the moment I'm trying to find unraids SMB limits. To test this I created on the unraid server 10000 random files as follows: # create random files on unraid server mkdir /mnt/cache/Marc/tower3 for n in {1..10000}; do dd status=none if=/dev/urandom of=/mnt/cache/Marc/tower3/$( printf %03d "$n" ).bin bs=1 count=$(( RANDOM + 1024 )) done To exclude DNS issues of my network and to be able to target the server with two different smb connections I added to following to the windows hosts file: 192.168.178.9 tower3 192.168.178.9 tower4 Then I copied a 10GB file to \\tower3\marc\tower3 and to \\tower4\marc\tower4 at the same time. Both parallel tranfers reached stable 300 MB/s. After 50% of the file was uploaded, I started robocopy as follows: start robocopy \\tower3\marc\tower3\ C:\Users\Marc\Documents\Benchmark\ /E /ZB /R:10 /W:5 /TBD /IS /IT /NP /MT:128 And while the transfer to \\tower4 even rises (370 - 450 MB/s) the transfer to \\tower3 is nearly dead: Can anyone verify my results?
  18. @_whatever Please check how many parallel SMB connections are open while the backup is running. Open PowerShell and enter this command: Get-smbconnection Regarding my testing Unraid has a really bad scalability of SMB sessions ("NumOpens"). This causes that a running backup completely kills the transfer speed for the SMB connection. The interesting part is that a parallel running second SMB connection is able to transfer with full speed (as long it does not open many sessions, too).
  19. Nope. Server and PC are both connected to a 10G switch and are on both sides the only connections. Regarding the performance problems and DNS: I changed the File History Backup to \\192.168.178.9\marc\backup and started it. A parallel transfer returned the following speeds: to \\192.168.178.9\cache\music 400 MB/s (this time the impact was not as huge as in my last tests) to \\tower\cache\music 600 MB/s (same server, same cable, same smb credentials) Then I reverted the File History Backup to \\tower\marc\backup and I have the completely same results as with the IP (this time reverted as expected): \\tower\cache\music 400 MB/s and \\192.168.178.9\cache\music 600 MB/s So its not DNS related. And the really bad thing is that Windows File History is active for a very long time (in my case). After copying all files it seems to compare everything as "inotifywait -mr /mnt/disk8/Marc/Backup/PC" returned an "infinite" amount of files that are accessed: This results in very low transfer on the disk: But it produces high CPU load on the shfs processes: It seems Unraid has a problem with many parallel running SMB sessions (NumOpens) per SMB connection as this is the only difference between the DNS name and the IP of the server while the backup is running: PS C:\WINDOWS\system32> Get-smbconnection ServerName ShareName UserName Credential Dialect NumOpens ---------- --------- -------- ---------- ------- -------- 192.168.178.9 cache DESKTOP-123456\John MicrosoftAccount\john 3.1.1 4 192.168.178.9 IPC$ DESKTOP-123456\John MicrosoftAccount\john 3.1.1 0 THOTH cache DESKTOP-123456\John MicrosoftAccount\[email protected] 3.1.1 4 THOTH manictime DESKTOP-123456\John MicrosoftAccount\[email protected] 3.1.1 0 THOTH Marc DESKTOP-123456\John MicrosoftAccount\[email protected] 3.1.1 495
  20. I'm using only one pc while testing. And I have new test results: Transfering to \\tower\cache\music (again bypassing shfs) is slow while backup is running, but transfer to \\192.168.178.9\cache\music with the same user credentials and same ethernet ports is fast?! Maybe you can test this scenario as well? For me it looks like Unraid is not good at multi-threading one smb user.
  21. Ok 😳 I deleted "/boot/config/smb-extra.conf" again 😉 Now I need to find out why one windows pc is able to produce such a high load on the shfs processes. At the moment I guess its the Windows File History backup. Or it was the mounted NFS share. I removed today the NFS features of my windows pc. We will see if this helps. EDIT: Ok, it must be the Windows File History. I started the backup and parallel transfering to \\tower\cache\music (to bypass the shfs process) is extremely slow: After stopping the backup:
  22. As this is only a workaround: Will this be solved in the future? My overhead / loss is 40%. For me its looking like the shfs process is not able to use the full cpu performance as none of my cores reaches more than 65% load while a transfer is running. A transfer to \\tower\cache\music produces much more load on multiple smbd processes, while a transfer to \\tower\music has only one single smbd process with high load. It seems smb is not able to use its multi-thread power as long the shfs "layer" is in front?!
  23. Where can I find this in the GUI?
  24. Today I found this interesting thread where a user wrote directly to the Cache disk as a share. I stopped the array, enabled disk shares in the global share settings and started as a first test a transfer to the the music share (that has persistent cache): No joke. Then I started a transfer to \\tower\cache\Music Then I realized, that the shfs processes are still producing load: Could it be possible that enabling the disk share causes an "indexing" process or similar? I mean what is this shfs process doing? Nobody is accessing the shares and there are no IOs on the disks: EDIT: Ok, now its becoming more interesting. After rebooting my windows pc the shfs processes are not present anymore: Now I can re-test the direct access to the cache share. Transfer to \\tower\Music: Transfer to \\tower\Cache\Music So its the same as @falconexe has prooven. Writing to a share causes an extreme speeddown. Sadly I can not use this trick as enabling disk shares is a huge security breach as no user logins are needed. EDIT: Ok, I'll created the file /boot/config/smb-extra.conf with the following content: [cache] path = /mnt/cache comment = browseable = yes # Private writeable = no read list = write list = marc valid users = marc case sensitive = auto preserve case = yes short preserve case = yes Then I stopped the array, disabled disk shares in the global share settings and started the array again. Now it shows only "cache" as the only disk share and it accepts only the user "marc":
  25. This time one of the most extreme results while downloading a file from the cache (NVME SSD). Just for fun I started a parallel iperf3 from disk (unraid, same file) to memory (windows). What is happening here?! htop while transfer is running: EDIT: Ok, seems to be related to "Tunable (enable Direct IO)". I reset it to "Auto" (was set to "Yes") and now the transfer is faster again: But I'm still disappointed. As you can see iperf3 reached up to 900 MB/s. I made an additional iperf3 memory2memory test from my 10G Synolgy NAS to my windows pc: marc@diskstation:/$ iperf3 -c 192.168.178.21 Connecting to host 192.168.178.21, port 5201 [ 5] local 192.168.178.11 port 42952 connected to 192.168.178.21 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 1.02 GBytes 8.79 Gbits/sec 0 218 KBytes [ 5] 1.00-2.00 sec 1.04 GBytes 8.89 Gbits/sec 0 218 KBytes [ 5] 2.00-3.00 sec 1.04 GBytes 8.98 Gbits/sec 0 218 KBytes [ 5] 3.00-4.00 sec 1.06 GBytes 9.07 Gbits/sec 0 218 KBytes [ 5] 4.00-5.00 sec 1.06 GBytes 9.08 Gbits/sec 0 218 KBytes [ 5] 5.00-6.00 sec 1.05 GBytes 9.02 Gbits/sec 0 218 KBytes [ 5] 6.00-7.00 sec 1.05 GBytes 9.04 Gbits/sec 0 218 KBytes [ 5] 7.00-8.00 sec 1.05 GBytes 9.03 Gbits/sec 0 218 KBytes [ 5] 8.00-9.00 sec 1.05 GBytes 8.99 Gbits/sec 0 218 KBytes [ 5] 9.00-10.00 sec 1.05 GBytes 9.05 Gbits/sec 0 218 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.00 sec 10.5 GBytes 8.99 Gbits/sec 0 sender [ 5] 0.00-10.00 sec 10.5 GBytes 8.99 Gbits/sec receiver And again a memory2memory test of the unraid server to my windows pc: root@Thoth:/boot/config# iperf3 -c 192.168.178.21 Connecting to host 192.168.178.21, port 5201 [ 5] local 192.168.178.9 port 51080 connected to 192.168.178.21 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 969 MBytes 8.13 Gbits/sec 0 317 KBytes [ 5] 1.00-2.00 sec 975 MBytes 8.18 Gbits/sec 0 317 KBytes [ 5] 2.00-3.00 sec 1002 MBytes 8.41 Gbits/sec 0 320 KBytes [ 5] 3.00-4.00 sec 1012 MBytes 8.50 Gbits/sec 0 325 KBytes [ 5] 4.00-5.00 sec 974 MBytes 8.17 Gbits/sec 0 334 KBytes [ 5] 5.00-6.00 sec 980 MBytes 8.22 Gbits/sec 0 311 KBytes [ 5] 6.00-7.00 sec 1014 MBytes 8.50 Gbits/sec 0 328 KBytes [ 5] 7.00-8.00 sec 972 MBytes 8.15 Gbits/sec 0 308 KBytes [ 5] 8.00-9.00 sec 1.00 GBytes 8.62 Gbits/sec 0 322 KBytes [ 5] 9.00-10.00 sec 999 MBytes 8.38 Gbits/sec 0 328 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.00 sec 9.69 GBytes 8.33 Gbits/sec 0 sender [ 5] 0.00-10.00 sec 9.68 GBytes 8.32 Gbits/sec receiver P.S. I tried to change my MTU setting, but it fails.
×
×
  • Create New...