I think Shibby's Tomato is not using both cores on my R7000

Discussion in 'Tomato Firmware' started by spliff, Apr 10, 2017.

  1. spliff

    spliff LI Guru Member

    I am running the latest Shibby release. I run the OpenVPN client on the router. I noticed this when doing a heavy download over VPN. I noticed CPU was very busy but core 0 was 100% idle.

    This doesn't seem right. Although the taskset of openvpn is set to 0,1 the scheduler isn't migrating anything to the second core. Explicitly setting the taskset of the process causes it to run on the second core

    taskset -cp 1 $(ps w |grep vpnclient1 |grep -v grep | awk '{print $1}')

    This gave me a siginificant boost in download speed.

    Anyone else noticed this? Feel free to check on your own router to confirm or deny.
  2. kille72

    kille72 LI Guru Member

    OpenVPN 2.x series is a single-threaded application. Possible muti-core support in 3.x series I read somewhere...
  3. spliff

    spliff LI Guru Member

    No argument there but the linux SMP kernel should move processes around (single threaded or not) to different cores based on CPU utilization. I didn't see any utilization of the second core at all.
  4. bripab007

    bripab007 Network Guru Member

    For those of us unfamiliar, what's the command for tracking per-core CPU utilization? Web GUI only shows single, overall value.
  5. spliff

    spliff LI Guru Member

    Run top then press 1 to see usage of both cores.
    AndreDVJ likes this.
  6. spliff

    spliff LI Guru Member

    I should clarify you should do this in an SSH terminal
  7. bripab007

    bripab007 Network Guru Member

    SSH--the only way to CLI!

    In the brief testing I did, I was having a hard time really loading up the CPUs--I only have a 90Mbit downstream connection and fairly basic QOS rules. I was running multiple speed tests on a couple clients and also had a remote client connect to OpenVPN server on router. Could barely get it above 10% CPU for more than a few seconds at a time. Anyway, OpenVPN just sits and runs on a single core, according to top, but I see that processes seem to be spread across both cores fairly evenly. The thing I was having a hard time keeping track of was whether there were any multi-threaded processes or whether any moved around dynamically between cores.

    Inconclusive so far from my vantage point :)
  8. PetervdM

    PetervdM Network Guru Member

    i noticed this too, but upon a restart of openvpn the i had to run the taskset command again because the PID had changed. so i scheduled it to run every ?? minutes but wasn't pleased with the result.
    recently i found another cleaner way:
    in openvpn server custom configuration i added:
    script-security 2
    up /path/to/script/upcmd.sh
    and in upcmd.sh:
    taskset -cp 1 $(ps w | grep vpnserver1 | grep -v grep | awk '{print $1}') | logger
    make sure upcmd.sh is flagged executable.
    Last edited: Jan 7, 2019
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice