Linguafoeda

Members
  • Posts

    223
  • Joined

  • Last visited

Posts posted by Linguafoeda

  1. 3 hours ago, Squid said:

    There seems to be some confusion etc as to what this plugin is actually doing.  As I've said, it's not fixing a bug with the OS.  Nor is it patching docker itself (and undoing the security updates which they did).  In pseudo code, pre 6.12.8 Unraid handled installs and updates to containers like this

     

    1.  Loop through all of the paths listed in the user's template
    2.  Add the appropriate flags / path  to the docker run command
    3.  End loop

     

    Because of how many users set up their templates, the above would generate an error if the host path (or container path) was empty on 6.12.8. The revised code is this:

    1.  Loop through all of the paths listed in the user's template
    2.  If either the host path or container path is empty, then skip this path
    3.  Add the appropriate flags / path to the docker run command
    4.  End loop

    Actual code snip I'm adding in (and is included in future revs of the OS) is the second and third line of the following:

        if ($confType == "path") {
          if ( ! trim($hostConfig) || ! trim($containerConfig) )
            continue;
          $Volumes[] = escapeshellarg($hostConfig).':'.escapeshellarg($containerConfig).':'.escapeshellarg($Mode);

     

    This plugin has to remain installed while you're on 6.12.8. Installing it and uninstalling it (with a reboot) will undo the changes it's adding in.

     

    Once you upgrade the OS to a later version, the plugin will automatically uninstall itself - IE: there's no need to uninstall it when you upgrade - the system won't even give you the option since it won't even get installed during boot of the next releases of the OS.


    Just to clarify - are you saying that your fix has been incorporated by the Unraid team in future OS updates after 6.12.8 but no current updates (6.12.9 presumably) are out yet so we must use this plugin if we are on latest stable (6.12.8)?

  2. On 12/7/2023 at 4:22 AM, Linguafoeda said:

     

    Wouldn't this hurt vm performance which is what I'm trying to optimize (faster VM, less CPU usage, ability to save power/free up CPU & RAM by sleeping VM if idling for more than 30-60mins etc)

     

    Or am I confusing what hyper-V does and how to interacts with the changes I did to my VM XML from m00nman's optimization guide

     

    bump - curious on if disabling hyper-v altering performance. i had finally tuned my windows VM for high performance (especially switching to microsoft RDP for access, installing intel-gvt for virtualized iGPU acceleration and following m00nman's perf thread. I did make a bunch of his XML edits which reference hyper-V so i don't want to then toggle the hyper-v in the non-XML edit of the VM which may cause issues with what i setup via @m00nman

  3. On 1/16/2024 at 5:59 PM, Linguafoeda said:

     

    I see. I'm getting heavy video lag while trying to simply stream and watch a video on the VM through clients including Anydesk and the default noVNC. Do you have any advice or tips on how to significantly improve this video performance? I don't have a GPU to passthrough and my Plex container has the --device=/dev/dri parameter which I believe makes it use my Intel 10th gen iGPU for transcoding

     

    Just wanted to follow up here that I've been able to significantly improve VM performance to the point it almost feels like native Windows. The two things that made the biggest differences (outside this threads OP for helping reduce my CPU usage significantly):

     

    1. installing intel GVT-g plugin to enable hardware acceleration for Windows 11 with my Intel 10th Gen iGPU (which was previously allocating the QuickSync feature to Plex via the extra parameter + Intel GPU TOP plugin)
    2. Switching from using NoVNC (native right click within browser) or Anydesk to the Microsoft RDC native application. the performance difference between Microsoft RDC client and Anydesk was pretty significant, and i had been using Anydesk for now 4-5 years under the assumption it was one of the smoother remote clients out there.

     

    Youtube videos now play perfectly, there's little perceptible lag and while full screen, the VM runs fantastic (with added benefit that it's offloading lot of work to GPU so my CPU temps stay around 50-60 now).

  4. 1 hour ago, sonofdbn said:

     

    Have you tried Guacamole? Don't know if it's fast enough for your purposes and whether it will do everything you want, but I found it OK and very easy to set up. (But in the end I went with Tailscale because I had other devices that I wanted to connect to in a consistent way.) Have never tried Parsec, so can't compare.

     

    How does Tailscale compare to Parsec? The main thing i didn't like about Parsec was no iOS app to be able to access from my iPad.

     

    Is there a way to change the default VNC viewer that appears upon right clicking a VM on the dashboard (since presumably noVNC now doesnt work after disabling Screen 1 in display properties?)

  5. 22 minutes ago, ich777 said:

    I'm not sure if that is equivalent to Parsec...

     

    You could also try RustDesk. ;)

     

    I just tried the native RDP client and its much speedier / snappier than anydesk, which is awesome! The only issue remaining is i don't know how to connect remotely with RDP when im not on the local LAN (i can't install a VPN on devices like my work PC which accesses the VM), so i will have to use the slower Anydesk for that

  6. Just now, ich777 said:

    You are talking about the VNC screen correct? If yes, try Parsec to log in since VNC is not HW accelerated whatsover.

     

    I'm using anydesk (with direct3d HW acceleration selected in Display settings) and followed the steps to disable screen 1 too

     

    As a side note - i know have a weird issue where i can't disable the remote mouse cursor in anydesk anymore so i have the annoying mouse trailing constantly. Might be an anydesk bug, but i didn't have that when i wasn't using gvt-g plugin

  7. 1 hour ago, alturismo said:

    well ...  i wouldnt do it, see my comment about Server crashing due vram issue for the iGPU ...

    as your system onl yreports max those 2 ... i wouldnt go further ... also, all that can happen is a bad Server crash followed by a hard reboot ... and a unclean shutdown which then may result in a parity check etc etc etc ...

     

    may just read the instructions, decide what you wish todo, test it ... and you will see the result.

     

    makes no sense now to me to go step by step ... ;)

     

    so i installed it and it properly shows in task manager but the improvement isnt terribly better than without it. are there any tuning settings to improve the video performance? it still lags while playing web videos for example

  8. 1 hour ago, alturismo said:

    nope, the vgpu which gvt-g creates has nothing todo with it ...

     

    anydesk should also work, but noVNC as sample wont really benefit from hardware accel graphics, anydesk may does ...

    try it ... ;)

     

    so try it out and you will see the results, may benefit a little as the app itself inside the VM may benefit from hw acc. ... but noVNC will be "as is" ...

     

    may ... just go ahead and stop the VM, Backup the vdisk image, backup the VM Template (xml view, copy it over)

    give gvt-g a try ... look how it will work out in your usecase ... if all works and you are happy, wipe the backup, if not ...
    or something fails ... just remove gvt-g, replace your vdisk with your backup, replace your xml with your backup,
    all like it never happened before ... ;)

     

    great - i will try that.

     

    Is it necessary to do step 15 and 16 to disable display 1 ("Show only on 2")? What would happen if you don't do that, would that let you still access the machine via noVNC?

     

    Also in noticed in the intel gvt-g plugin page, it gives me the below two options. Is there a way to run 2560x1440p resolution like i was without iGPU HW accel?

     

    i915-GVTg_V5_4: VMEM: <128MB, 512MB>, up to 1920x1200
    i915-GVTg_V5_8: VMEM: <64MB, 384MB>, up to 1024x768

  9. 50 minutes ago, alturismo said:

    yes, like described in Post 1 (Header)

     

    yes, and rest is obsolete as it works simultan ...

     

    yes

     

    remove that, install the intel gpu top plugin and the gvt-g plugin, will do all that for you ...

    and yes, also will keep plex working ;)

     

    may as final reminder, once you have it running, beware that RDP usage likes to crash a Server due vram overloading ... so rather use streamer apps like parsec then (works flawlessly here).

     

    RDP issue, especially when the client resolution is higher then 1920*1080 ... which is pretty common nowadays.

     

    thank you - i actually checked my go file and it only had the below entries (i think related to enabling PUTTY SSH with key) and i also had INTEL-GPU-TOP (version 2023.09.13) already installed. Would i need to remove the "--device=/dev/dri" from the Plex container parameters after i install the gvt-g plugin?

     

    Also - does that mean if i enable this i wont be able to right click on the VM icon in the dashboard and use the "noVNC" viewer going forward? I use that pretty often from my work PC since i can't install other remote clients on my work PC. How about Anydesk, will that program work with this? I dont have parsec or use it because there's no ipad app + many of my other remote desktop clients use anydesk so I try to stay on that platform.
     

    /boot/config/go 
    #!/bin/bash
    #Start the Management Utility 
    /usr/local/sbin/emhttp &
    echo 1 > /sys/kernel/mm/ksm/run
    mkdir /root/.ssh
    chmod 700 /root/.ssh
    cp /boot/config/ssh/authorized_keys /root/.ssh/
    chmod 600 /root/.ssh/authorized_keys

     

  10. Hello - i have an i7-10700 with no dedicated GPU, just the intel iGPU. I always have a Windows 11 VM running though most of the time it's idling (i.e. not being actively accessed, and the only program running in Win11 GPU will be Chrome with 50-100 tabs open). I followed the below Plex container instructions to have my iGPU be used for Plex HW encoding, but I am having poor VM performance so i want to see if my iGPU can be used for both Win11 VM and Plex container. I have a few questions:

     

    1. Will this plugin allow me to dynamically use my intel iGPU for both docker and VM hardware acceleration?
    2. Can Plex and the VM simulataneously access the iGPU? If not, what if the Win11 VM is running but not being accessed by Anydesk or noVNC (the two primary remote clients I use), does that allow Plex to use the iGPU for hardware acceleration?
    3. Should i be following the steps outlined in the 2nd post to achieve this ability this dual Plex docker + Win11 VM hardware acceleration?
    4. Do i need to undo anything related to the settings below (i.e. "modprobe i915") before I install the Intel gvt-p plugin?

     

    Intel GPU Use
    Edit your go file to include:
    modprobe i915
    , save and reboot, then 
    add --device=/dev/dri to "extra parameters" (switch on advanced view)

     

     

  11. I'm getting a weird error message on my discord from netdata, does anyone know what this means?

     

    SERVER needs attention, app.dhcp_fds_open_limit, App group dhcp file descriptors utilization = 500%
    App group dhcp file descriptors utilization = 500%
    Open files percentage against the processes limits, among all PIDs in application group
    app.dhcp_fds_open_limit

     

    • Upvote 1
  12. 20 minutes ago, SimonF said:

      <cpu mode='host-passthrough' check='none' migratable='off'>
        <topology sockets='1' dies='1' cores='1' threads='1'/>
        <cache mode='passthrough'/>
      </cpu>

     

    It means certain cpu functions are not turned off to support migration to another host. You have to edit the xml, there will be an option in the next release.

     

    oh lol - yes i had that setup from the OP post changes. dope.

  13. 10 hours ago, xtrap225 said:

    i have my work pc on a dedicated 1TB NVMe drive passed through windows 11 vm and i was having loads of issues  getting my cpu usage down. it would always eventually creep up. and stay up.  i tried the "Memory integrity"  recommendation change even though i was probably not supposed to.

    what ended up working was disabling "Mitigations Settings" in Unraid Settings. so i just wanted to let folks know somewhere, that made a HUGE difference.

     

    Where's this setting? what does it do?

  14. 2 hours ago, Ether Wrangler said:

     

    That's vi.  Here's a link on how to use it: https://www.howtogeek.com/102468/a-beginners-guide-to-editing-text-files-with-vi/.  If you'd rather use nano (at least learn the vi exit sequence though) then run:

    apt update && apt install nano
    select-editor

     

    When you run select-editor you should get an option to change from vim-tiny to nano.  My only guess is that I installed nano in the past and set it as the default edit and forgot about it.

     

    thank you - nano seemed to work. is there a way to globally set on my unraid all text editing to use nano? I tried to run that command on the main unraid terminal and it didn't work, but it did work in the container's (netdata) console.

     

    the test worked for the webhook, then i ran the first two commands, all i did was change the warn and crit ranges (i.e. alert at 70% instead of 80% for warn), then saved and exited, ran the reload-health command but nothing shows up in my netdata web console indicating an alert is setup?

     

    To edit ram.conf file:

    cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata
    ./edit-config health.d/ram.conf

     

    ram.conf file:

    # you can disable an alarm notification by setting the 'to' line to: silent
    
        alarm: ram_in_use
           on: system.ram
        class: Utilization
         type: System
    component: Memory
           os: linux
        hosts: *
         calc: $used * 100 / ($used + $cached + $free + $buffers)
        units: %
        every: 10s
         warn: $this > (($status >= $WARNING)  ? (70) : (90))
         crit: $this > (($status == $CRITICAL) ? (90) : (98))
        delay: down 15m multiplier 1.5 max 1h
      summary: System memory utilization
         info: System memory utilization
           to: sysadmin
    
        alarm: ram_available
           on: mem.available
        class: Utilization
         type: System
    component: Memory
           os: linux
        hosts: *
         calc: $avail * 100 / ($system.ram.used + $system.ram.cached + $system.ram.free + $system.ram.buffers)
        units: %
        every: 10s
         warn: $this < (($status >= $WARNING)  ? (15) : (10))
        delay: down 15m multiplier 1.5 max 1h
      summary: System available memory
         info: Percentage of estimated amount of RAM available for userspace processes, without causing swapping
           to: silent
    
        alarm: oom_kill
           on: mem.oom_kill
           os: linux
        hosts: *
       lookup: sum -30m unaligned
        units: kills
        every: 5m
         warn: $this > 0
        delay: down 10m
      summary: System OOM kills
         info: Number of out of memory kills in the last 30 minutes
           to: silent
    
    ## FreeBSD
        alarm: ram_in_use
           on: system.ram
        class: Utilization
         type: System
    component: Memory
           os: freebsd
        hosts: *
         calc: ($active + $wired + $laundry + $buffers) * 100 / ($active + $wired + $laundry + $buffers + $cache + $free + $inactive)
        units: %
        every: 10s
         warn: $this > (($status >= $WARNING)  ? (70) : (90))
         crit: $this > (($status == $CRITICAL) ? (90) : (98))
        delay: down 15m multiplier 1.5 max 1h
      summary: System memory utilization
         info: System memory utilization
           to: sysadmin
    
        alarm: ram_available
           on: mem.available
        class: Utilization
         type: System
    component: Memory
           os: freebsd
        hosts: *
         calc: $avail * 100 / ($system.ram.free + $system.ram.active + $system.ram.inactive + $system.ram.wired + $system.ram.cache + $system.ram.laundry + $sy>
        units: %
        every: 10s
         warn: $this < (($status >= $WARNING)  ? (15) : (10))
        delay: down 15m multiplier 1.5 max 1h
      summary: System available memory
         info: Percentage of estimated amount of RAM available for userspace processes, without causing swapping
           to: silent

     

     After editing ram.conf, ran:

    netdatacli reload-health

     

    image.thumb.png.c351a7d7f9bebf165a1e5fa47616a314.png

     

     

  15. 3 hours ago, Ether Wrangler said:

     

     

    Sorry, been a busy week at work.  If you don't change the file permissions then Krusader probably won't have the correct ones to save the file.  Not sure what those 3 you have highlighted are, but it does look like the correct file got created (circled in red)

    image.thumb.png.190b17c9e0b1269de7a7d385b7485eda.png

    If the text editor in your terminal looks like this at the bottom:

    image.png.b52647cab9deb12871d8a361ac8bef6d.png

     

    That's an editor called "nano" if you ever want to watch a video to learn more about it.  All of those are the cheat codes for the common shortcuts and ^ is the "modifier key".  The default modifier in nano is ctrl.  So to save and exit you can do ctrl-o (Write Out) then ctrl-x (Exit).  Or you can just do ctrl-x and it will ask if you want to save the buffer and you can answer y/n.

     

    I don't have that option - it just says insert at the bottom. i right clicked on netdata container -> console -> type those two commands. i tried a bunch of ctrl + commands...nothing seems to do anything along the lines of saving.

     

    image.thumb.png.4404e73d37f6db7b890038664c83da63.png

  16. On 1/18/2024 at 2:03 AM, m00nman said:

    That's a bad combination. Video driver is emulated + VM decodes the video then reencodes it back to send over the internet via remote desktop app. Remote desktop application aren't really designed for streaming videos at full fps, besides game streaming apps like parsec, but then again you are putting a lot if stress on that cpu without a dedicated gpu to decode and then encode a video stream in real time. Can't you stream video directly to your PC?


    Unfortunately not - the site gets blocked on my work PC but they don't block VM software so I want to be able to access video streams.
     

    So my only option would be to buy a cheap GPU?

  17. 1 minute ago, m00nman said:

     

    Pinning is only necessary when you want to have predictable performance for a VM/container, especially under heavy load, at the expense of pinned cores just idling and doing nothing when the VM pinned to them is doing nothing.  Lettings the host's kernel distribute the load (no pinning) between unused or underutilized cores will give you better efficiency, and possibly better performance for all the VMs/containers at the expense of 0 predictability whether that particular VM that you use for, let's say, playing games will have adequate CPU utilization headroom for playing games (there are ways to assign priorities for VMs, but it's beyond the scope here). So it really depends on your use case. Enterprise solutions almost never use cpu pinning because they want to extract maximum performance for all of the VMs/containers.

     

    I see. I'm getting heavy video lag while trying to simply stream and watch a video on the VM through clients including Anydesk and the default noVNC. Do you have any advice or tips on how to significantly improve this video performance? I don't have a GPU to passthrough and my Plex container has the --device=/dev/dri parameter which I believe makes it use my Intel 10th gen iGPU for transcoding

  18. On 1/22/2023 at 12:35 AM, m00nman said:

    3. (do NOT do this if you are gaming on the VM or otherwise need a more predictable performance not affected by all the other containers/VMs running on the same machine) We want to disable CPU pinning completely and let the kernel deal with scheduling and distributing load between all the cores on the CPU. Why is CPU pinning not always good? Let's assume you did your best to distribute and pin cores to different VM. For simplicity let's assume we have a 2 core CPU and 4 VMs. We pin core #1 to VM1 and VM3, and core #2 to VM2 and VM4. Now it so happened that VM1 and VM3 started doing something CPU intensive at the same time and they have to share that core #1 between the two of them all while core #2 is doing completely nothing. By letting kernel schedule the load without pinning it will distribute the load between both cores.

     

    Let's go back into the VM settings and

    Delete the following block

      <cputune>
        .
        .
        .
      </cputune>

     

    Make sure that the line

    <vcpu placement='static'>MAX_CPU_NUMBER</vcpu>

    and

    <topology sockets='1' dies='1' cores='MAX_CPU_NUMBER' threads='1'/>

    still has the maximum number of cores your VM is allowed to use (obviously MAX_CPU_NUMBER is a number of cores you want to limit this particular VM to, so replace it with a number)

     

    I was reading some reddit Windows optimiztion threads and one of them suggested to use CPU pinning in Unraid -> Settings -> CPU Pinning. I realize i made the above changes that i guess disable CPU pinning. If I only have 1 VM really running 100% of the time (~8GB), and a bunch of docker containers that use maybe another 8GB of RAM of my 32GB total, is there any rhyme or reason for using or not using CPU pinning to pin 3-4 cores (of my 8 cores) to Win11 VM to improve performance?

  19. 57 minutes ago, Ether Wrangler said:

     

    If you have the latest version of the template (updated at the end of October) you'll have all you need in the template for Cloud.  To see where the container is creating the AppData, click "Show more settings" at the bottom of the netdata docker settings page.  In there you'll see three paths: NetData_Config, NetData_Lib, and NetData_Cache.  Make sure all 3 of those are mapped or you'll have issues with NetData Cloud persisting data and setting up the config for Alerts.

     

    Go to https://www.netdata.cloud/ and sign up for an account.  You'll get to the point you'll be given instructions to install netdata on something and those instructions should have a Claim Token, Claim URL, and a Claim Room.  You'll paste all 3 of those into the 3 fields into the template and Unraid should start showing up in Netdata Cloud.

     

     

    To setup the Discord portion, this should walk you through it:

    https://learn.netdata.cloud/docs/alerting/notifications/agent-dispatched-notifications/discord

    When you get to:

    sudo ./edit-config health_alarm_notify.conf

    Ignore the sudo command.

    If you do the Test Notification section, I don't think you'll do the following:

    # become user netdata
    sudo su -s /bin/bash netdata

     

     

    To change the ram alert settings, run this command after you are done editing the config above:

    ./edit-config health.d/ram.conf

    In there you can change the settings to however you would like.  For more info on that one, here's the documentation on setting those up: https://learn.netdata.cloud/docs/alerting/health-configuration-reference

     

    So i uninstalled and reinstalled the container as it was entirely missing all those template variables, and i got netdata cloud up and running.

     

    I got to line 2 (sudo) and it failed. if i remove sudo word, it opens up a text editor-like window but then i don't know how to save the changes once I've made them? or can i edit this conf file in something like krusader?

     

    cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata
    ./edit-config health_alarm_notify.conf

     

     

    Webhook Paste Info I'm supposed to paste?

    #------------------------------------------------------------------------------
    # discord (discordapp.com) global notification options
    
    SEND_DISCORD="YES"
    DISCORD_WEBHOOK_URL="https://discord.com/api/webhooks/XXXXXXXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    DEFAULT_RECIPIENT_DISCORD="alerts"