This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Poor download/upload performance

Hi! New user here. 

I've recently installed UTM 9 Home (latest version) on my small box (Atom D2550, 4GB, 32GB SSD, Dual 1GB Broadcom BCM 57788 NICs). I had pfSense installed before, but decided to try Sophos. 

Anyway, after installation I noticed that my speed decreased quite a bit. My ISP is Comcast and I'm paying for a 50/10 line, but during speed tests with direct connection to a PC or through pfSense (same hardware) I was getting more like 120/12. 

With the Sophos installed now I'm getting 45/8.5, and this is with just Firewall protection. If I enable Web protection and IPS the speed is about 43/7.5. What the heck?

I ran top command in the terminal to check CPU load. When IPS is enabled I see that Snort uses 99% of one of the cores (being single-threaded I know that's the limiting factor for me with IPS on). However, without IPS during speed tests (firewall only) the CPU idle stays at about 90%, so the limiting factor doesn't seem to be any of the processes nor the CPU. 

I connected my modem directly to my PC and I was again getting the 120/12 speeds. I connected back to Sophos box and again slow speeds. I went as far as duplicating my PC's MAC address on the external NIC. Still the same slower speed. 

The interesting thing is that during the speedtest (speedtest.net) my download speed (with FW only) stays right at 45mbps, doesn't go above, just a straight line on the graph. As if something is "throttling" the speed. I checked my QoS and no throttling there (I had it there for VoIP QoS, but disabled it). 

I'm out of ideas here. Either something in the Sophos software stack is limiting the speed or something is up with my NICs (but I had pfSense installed on the same exact hardware and was getting the 110/12 speeds, and that's with snort ON, maxing out 1 core).

Any help would be appreciated!

Thanks a lot!


This thread was automatically locked due to age.
  • KKnecht and William,

    1) Thank You for noting that I did not execute correctly. I do not know what went wrong as I typed exactly.
    To set things "back to original" for 9.2 (which uses CFFS by default):
     cc set http sc_local_db none
     cc set http use_sxl_urid 0
     /var/mdw/scripts/httpproxy restart

    2) I thought it is correct as I see that output which I actually do not comprehend.
    /home/login # ps aux | grep urid
     root 5589 0.0 0.0 3608 748 pts/1 S+ 12:32 0:00 grep urid

    3) I executed the following as advised.

    /home/login # cc set http use_sxl_urid 1
    1
    /home/login # /var/mdw/scripts/httpproxy restart
    :: Restarting httpproxy
    :: Stopping httpproxy                                                done
    :: Starting httpproxy                                                done

    /home/login # ps aux | grep urid
    810      10644  0.2  0.2 132580  6176 ?        Ss   21:52   0:00 /var/chroot-http/opt/ws/bin/urid --chroot /var/chroot-http --user 810 --admin /opt/ws/conf/admin.urilist --admin-ip /opt/ws/conf/adminip.kvlist
    root     10941  0.0  0.0   3612   748 pts/0    S+   21:54   0:00 grep urid
    /home/login #

    4) Thus am I back to Original Settings of V9.2 AND with SXL Enabled now?

    5) Is there a command I can type to show the settings 
         5.1) cc set http sc_local_db none
    AND
         5.2) SXL is ON for you all to confirm?

    Once again - Thank You All.
  • KKnecht and William,

    1) Thank You for noting that I did not execute correctly. I do not know what went wrong as I typed exactly.
    To set things "back to original" for 9.2 (which uses CFFS by default):
     cc set http sc_local_db none
     cc set http use_sxl_urid 0
     /var/mdw/scripts/httpproxy restart

    2) I thought it is correct as I see that output which I actually do not comprehend.
    /home/login # ps aux | grep urid
     root 5589 0.0 0.0 3608 748 pts/1 S+ 12:32 0:00 grep urid

    3) I executed the following as advised.

    /home/login # cc set http use_sxl_urid 1
    1
    /home/login # /var/mdw/scripts/httpproxy restart
    :: Restarting httpproxy
    :: Stopping httpproxy                                                done
    :: Starting httpproxy                                                done

    /home/login # ps aux | grep urid
    810      10644  0.2  0.2 132580  6176 ?        Ss   21:52   0:00 /var/chroot-http/opt/ws/bin/urid --chroot /var/chroot-http --user 810 --admin /opt/ws/conf/admin.urilist --admin-ip /opt/ws/conf/adminip.kvlist
    root     10941  0.0  0.0   3612   748 pts/0    S+   21:54   0:00 grep urid
    /home/login #

    4) Thus am I back to Original Settings of V9.2 AND with SXL Enabled now?

    5) Is there a command I can type to show the settings 
         5.1) cc set http sc_local_db none
    AND
         5.2) SXL is ON for you all to confirm?

    Once again - Thank You All.

    ok to make sure you are back on the sxl system:
     cc set http sc_local_db none
     cc set http use_sxl_urid 1
     /var/mdw/scripts/httpproxy restart

    Owner:  Emmanuel Technology Consulting

    http://etc-md.com

    Former Sophos SG(Astaro) advocate/researcher/Silver Partner

    PfSense w/Suricata, ntopng, 

    Other addons to follow


  • 5) Is there a command I can type to show the settings 
         5.1) cc set http sc_local_db none
    AND
         5.2) SXL is ON for you all to confirm?

    Once again - Thank You All.


    My post about how to get to the "9.2 original settings" intended to show the settings at install.  Yes, if you have Endpoint enabled then SXL should be enabled (which you did in step 3).

    Step 2 makes more sense if you know linux.  Basically it is asking to list all running processes and then filter for those that include the word "urid" and in step 2 the only process it found was itself (the grep search).  In Step 3 now you see that it found two processes, the grep search and the real process.

    5.1)
    replace the "set" with "get" in the command lines (and leave off the final value) to get the current value.
    cc get http sc_local_db
    cc get http use_sxl_urid

    5.2)
    The output of Step 2 where it shows urid is running is confirmation.
  • Hi William and Michael,

    Please bear with me the tedious typing out as I really want to get it right.

    - Thank You for the prompt response.
    - Sophos UTM 9.210-20
    - Endpoint Protection= Enabled.
    - Endpoint Web Control =Enabled.
    - Current Settings as follow.
    /home/login # cc get http sc_local_db
    none
    /home/login # cc get http use_sxl_urid
    1
    /home/login #

    I am 100% Back to Original Settings of V9.2 and there is NO manual modifications right?

    Thank You
  • Some Questions to better understand the different types of lookups for learning purpose.

    1) SXL = Cloud Lookup with Local Cache.
            So If I browse CNN - it checks CNN = News and Display the site.
            It also Caches this locally and therefore subsequent users browsing CNN would check Locally thus faster and Display.
        
    But what is CNN is Hacked and is Serving Malicious Files for whatsoever reason, how long does it take for the Local Cache to Expire and it would lookup in the cloud to confirm now it should be block as Malicious ?

    2) Assuming I did not read this post and simply stays with
    cc get http sc_local_db_= DISK (Typed manually in putty)
    cc get http use_sxl_urid = 1 (Because Endpoint Protection is Enabled and not typed in putty)

    How does the lookup behave in such scenario whereby there is a Local DB and the SXL is 1 which I think means True thus is Enabled?

    3) I read that SXL is the Best Option and would be the way going forward. 
        In what way would Looking up in the cloud, even with local cache be Faster than entire Local DB Cache. It is just about 400MB. Even if Ram is insufficient, loading it to Disk is still faster then lookup in the cloud right?

    I am confused whereby it seems Local DB Cache seems to be the fastest but SXL is the way going forward.

    If SXL is definitely the Best, where is Local DB Cache option available even if it is not officially supported. For all these features to be available even if it is not officially supported it still need code from the developers for it to work thus there must be a reason why such option is there.

    4) Assuming I simply stick to my Local DB Settings.
    cc get http sc_local_db_= DISK (Typed manually in putty)
    cc get http use_sxl_urid = 1 (Because Endpoint Protection is Enabled and not typed in putty)

    How would it Behave when Upgrade to 9.3 whereby SXL is the default.
    It would Overwrite and change to the following by force ? 
    cc get http sc_local_db_= NONE 
    cc get http use_sxl_urid = 1

    5) Is this CFFS and SXL looking at the SAME Database or they are 2 separate Database?

    6) Is SOPHOS still using McAfee Database or now it is using some other database?

    Once again, thank you all for the help, so happy that I happen to see this post and realized there is this SXL.
  • Some Questions to better understand the different types of lookups for learning purpose.

    1) SXL = Cloud Lookup with Local Cache.
            So If I browse CNN - it checks CNN = News and Display the site.
            It also Caches this locally and therefore subsequent users browsing CNN would check Locally thus faster and Display.
        
    But what is CNN is Hacked and is Serving Malicious Files for whatsoever reason, how long does it take for the Local Cache to Expire and it would lookup in the cloud to confirm now it should be block as Malicious ?

    2) Assuming I did not read this post and simply stays with
    cc get http sc_local_db_= DISK (Typed manually in putty)
    cc get http use_sxl_urid = 1 (Because Endpoint Protection is Enabled and not typed in putty)

    How does the lookup behave in such scenario whereby there is a Local DB and the SXL is 1 which I think means True thus is Enabled?

    3) I read that SXL is the Best Option and would be the way going forward. 
        In what way would Looking up in the cloud, even with local cache be Faster than entire Local DB Cache. It is just about 400MB. Even if Ram is insufficient, loading it to Disk is still faster then lookup in the cloud right?

    I am confused whereby it seems Local DB Cache seems to be the fastest but SXL is the way going forward.

    If SXL is definitely the Best, where is Local DB Cache option available even if it is not officially supported. For all these features to be available even if it is not officially supported it still need code from the developers for it to work thus there must be a reason why such option is there.

    4) Assuming I simply stick to my Local DB Settings.
    cc get http sc_local_db_= DISK (Typed manually in putty)
    cc get http use_sxl_urid = 1 (Because Endpoint Protection is Enabled and not typed in putty)

    How would it Behave when Upgrade to 9.3 whereby SXL is the default.
    It would Overwrite and change to the following by force ? 
    cc get http sc_local_db_= NONE 
    cc get http use_sxl_urid = 1

    5) Is this CFFS and SXL looking at the SAME Database or they are 2 separate Database?

    6) Is SOPHOS still using McAfee Database or now it is using some other database?

    Once again, thank you all for the help, so happy that I happen to see this post and realized there is this SXL.

    The local mem cache was a hidden fix for performance issues caused by the older cff system.  Instead of having to wait for the lookups when cff was having response errors that option was a hidden option meant to be temporarily available until something like sxl was able to be brought online.  sxl is a highly distributed cloud based looup database that is based on Amazon EC2 IIRC.  If an sxl server gets highly sloded another copy of that database is automatically fired up and added to the pool to spread the load of lookups out and prevent performance problems.  So far i have not seen nay issues related to the sxl system..i HAVE seen performance issues caused by utm misconfigurations, overloaded utm, overloaded wan links, connectivity issues between the client and the nearest sxl cluster...etc etc.  

    The Macafee system is still employed AFAIK.

    it is not caching the site content it is caching the database lookups.  The site content(unless you enable caching on the proxy area) is pulled with each user..therefore it is scanned by whatever features you have setup.  I do not recommend enabling the content caching not only for the security reasons above but also most sites now generate the page you see on the fly anyway...very little is static so caching is marginally effective at best.

    I don't know if sxl is enabled automatically upon upgrade to 9.3 as i switched to sxl once i heard about that feature..[:)]

    Owner:  Emmanuel Technology Consulting

    http://etc-md.com

    Former Sophos SG(Astaro) advocate/researcher/Silver Partner

    PfSense w/Suricata, ntopng, 

    Other addons to follow


  • 1) SXL = Cloud Lookup with Local Cache.
            So If I browse CNN - it checks CNN = News and Display the site.
            It also Caches this locally and therefore subsequent users browsing CNN would check Locally thus faster and Display.
        
    But what is CNN is Hacked and is Serving Malicious Files for whatsoever reason, how long does it take for the Local Cache to Expire and it would lookup in the cloud to confirm now it should be block as Malicious ?

    Without going into too many details, the cache is for 10 minutes.  However the system also uses expired cache entries with background refresh.  This means that even if it has been more than 10 minutes it still as fast as a local cache but a site that is suddenly malicious is blocked on the second request.


    2) Assuming I did not read this post and simply stays with
    cc get http sc_local_db_= DISK (Typed manually in putty)
    cc get http use_sxl_urid = 1 (Because Endpoint Protection is Enabled and not typed in putty)

    How does the lookup behave in such scenario whereby there is a Local DB and the SXL is 1 which I think means True thus is Enabled?

    sc_local_db wins over sxl setting.

    3) I read that SXL is the Best Option and would be the way going forward. 
        In what way would Looking up in the cloud, even with local cache be Faster than entire Local DB Cache. It is just about 400MB. Even if Ram is insufficient, loading it to Disk is still faster then lookup in the cloud right?

    I am confused whereby it seems Local DB Cache seems to be the fastest but SXL is the way going forward.

    If SXL is definitely the Best, where is Local DB Cache option available even if it is not officially supported. For all these features to be available even if it is not officially supported it still need code from the developers for it to work thus there must be a reason why such option is there.

    Because of the way SXL uses expired cache, on a loaded system >95% of the time the answer is local and therefore the same speed, but with less memory usage.  It has several thousand times the number of users, is officially supported, and give Sophos more flexibility in the future.

    As for why the local database option even exists, one the reasons is some parts of the world some customer have very poor ping times.  CFFS cloud lookups have no caching and therefore every request causes a lookup.  On a satellite connection with 300ms round trip times...  Their solution was rather than caching the answers, cache the whole database.  On smaller systems the total bandwidth for downloading the local db updates can be higher than the bandwidth for individual lookups.

    The other reason for this (and in some ways the big underlying reason for it all) is that there used to be a company called Astaro who made a UTM that used CFFS for cloud and local db.  Sophos, who uses SXL, purchased Astaro.  As SXL is in many ways much superior to CFFS we are switching everyone on the UTM over to it.

    4) Assuming I simply stick to my Local DB Settings.
    cc get http sc_local_db_= DISK (Typed manually in putty)
    cc get http use_sxl_urid = 1 (Because Endpoint Protection is Enabled and not typed in putty)

    How would it Behave when Upgrade to 9.3 whereby SXL is the default.
    It would Overwrite and change to the following by force ? 
    cc get http sc_local_db_= NONE 
    cc get http use_sxl_urid = 1

    The upgrade changes all customers to have use_sxl_urid = 1.  It does not change the sc_local_db.  Anyone on local db continues to use it.

    5) Is this CFFS and SXL looking at the SAME Database or they are 2 separate Database?

    [QUOTE=Alvin;281168]6) Is SOPHOS still using McAfee Database or now it is using some other database?


    They are both use the same data source (McAfee).  However every cloud server has its own copy of the database.
  • Thank You Michael and William,

    Learnt a lot from this case.

    1) I am glad I am back to Original Settings.

    2) I am glad to know I am on SXL and YES it is Way Much More Usable than the traditional CFFS, I am in Singapore, with a Fiber Internet and I think CFFS has a server in Singapore and that Slowness is Not Useable at all thus I have been using Local DB.

    3) Just to clarify that SXL is Enabled ONLY when Endpoint Web Control is Enabled.
        With ONLY Endpoint Protection Enabled, the SXL is not enabled.
         I did this by enabling and disabled the components to confirm which one will set SXL to 1. Just want to make sure the rest of the forum users know this if they want to be on SXl.

    4) One Last thing to clarify 

    Assuming I simply stick to my Local DB Settings.
    cc get http sc_local_db_= DISK (Typed manually in putty)
    cc get http use_sxl_urid = 0 (End Point Protection is Not Enabled by default.)

    Michael " The upgrade changes all customers to have use_sxl_urid = 1. It does not change the sc_local_db. Anyone on local db continues to use it."

    Thus the settings After Upgrade to 9.3 would be 
    cc get http sc_local_db_= DISK (Typed Manually) 
    cc get http use_sxl_urid = 1 (Change to 1 because of the 9.3 Upgrade)

    Michael " sc_local_db wins over sxl setting."

    Thus the End Result for such a setting would still be Local DB.
  • Thank You Michael and William,

    Learnt a lot from this case.

    1) I am glad I am back to Original Settings.

    2) I am glad to know I am on SXL and YES it is Way Much More Usable than the traditional CFFS, I am in Singapore, with a Fiber Internet and I think CFFS has a server in Singapore and that Slowness is Not Useable at all thus I have been using Local DB.

    3) Just to clarify that SXL is Enabled ONLY when Endpoint Web Control is Enabled.
        With ONLY Endpoint Protection Enabled, the SXL is not enabled.
         I did this by enabling and disabled the components to confirm which one will set SXL to 1. Just want to make sure the rest of the forum users know this if they want to be on SXl.

    4) One Last thing to clarify 

    Assuming I simply stick to my Local DB Settings.
    cc get http sc_local_db_= DISK (Typed manually in putty)
    cc get http use_sxl_urid = 0 (End Point Protection is Not Enabled by default.)

    Michael " The upgrade changes all customers to have use_sxl_urid = 1. It does not change the sc_local_db. Anyone on local db continues to use it."

    Thus the settings After Upgrade to 9.3 would be 
    cc get http sc_local_db_= DISK (Typed Manually) 
    cc get http use_sxl_urid = 1 (Change to 1 because of the 9.3 Upgrade)

    Michael " sc_local_db wins over sxl setting."

    Thus the End Result for such a setting would still be Local DB.


    in 9.3 SXL is always on with or without endpoint web control turned on or not.  If you are using cffb on disk mode then even if sxl is running you will use the cff disk database.

    Owner:  Emmanuel Technology Consulting

    http://etc-md.com

    Former Sophos SG(Astaro) advocate/researcher/Silver Partner

    PfSense w/Suricata, ntopng, 

    Other addons to follow

  • Thank You Michael and William,

    Learnt a lot from this case.

    1) I am glad I am back to Original Settings.

    2) I am glad to know I am on SXL and YES it is Way Much More Usable than the traditional CFFS, I am in Singapore, with a Fiber Internet and I think CFFS has a server in Singapore and that Slowness is Not Useable at all thus I have been using Local DB.

    3) Just to clarify that SXL is Enabled ONLY when Endpoint Web Control is Enabled.
        With ONLY Endpoint Protection Enabled, the SXL is not enabled.
         I did this by enabling and disabled the components to confirm which one will set SXL to 1. Just want to make sure the rest of the forum users know this if they want to be on SXl.

    4) One Last thing to clarify 

    Assuming I simply stick to my Local DB Settings.
    cc get http sc_local_db_= DISK (Typed manually in putty)
    cc get http use_sxl_urid = 0 (End Point Protection is Not Enabled by default.)

    Michael " The upgrade changes all customers to have use_sxl_urid = 1. It does not change the sc_local_db. Anyone on local db continues to use it."

    Thus the settings After Upgrade to 9.3 would be 
    cc get http sc_local_db_= DISK (Typed Manually) 
    cc get http use_sxl_urid = 1 (Change to 1 because of the 9.3 Upgrade)

    Michael " sc_local_db wins over sxl setting."

    Thus the End Result for such a setting would still be Local DB.


    so what i would try is setting the system to sxl and turning off cff altogether.  Give things a bit to sort and see how it works..i tend to give things 24 hours to let the sxl cache build.

    Owner:  Emmanuel Technology Consulting

    http://etc-md.com

    Former Sophos SG(Astaro) advocate/researcher/Silver Partner

    PfSense w/Suricata, ntopng, 

    Other addons to follow