Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Squid3 CPU monte à 100% lors de téléchargements + baisse de bande passante

    Scheduled Pinned Locked Moved Français
    32 Posts 3 Posters 4.6k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      moulip
      last edited by

      Bonsoir,

      Je rencontre un problème que je n'arrive pas à résoudre. Je dispose d'une installation virtualisée de Pfsense 2.1.5. Il est installé sur un virtualiseur Proxmox. La VM dispose de 2 coeurs CPU et 1.5 Go de RAM. Pfsense a 3 interfaces : 1 WAN, 1 DMZ, 1 LAN. OpenVPN est installé également.

      Tout fonctione bien sauf avec Squid lors de téléchargements. J'ai intallé le package Squid 3 + Squidguard. Les réglages sont ceux par défaut et j'ai mis 2 Go d'espace disque pour le cache avec 128 Mo de RAM. Et je précise que je l'utilise en mode transparent.

      Je dispose d'une connexion Fibre FTTH. Sans le proxy avec wget je monte à 32 Mo/s avec le proxy je suis à 12-13 et le CPU monte à 100%.
      J'ai modifié la valeur kern.ipc.nmbclusters="32768" dans loader.conf comme indiqué dans les docs Pfsense.

      Pfsense est insallé chez moi, donc il y a 3 utilisateurs maximum.

      Quelqu'un peut-il m'aider pour adresser ce problème s'il vous plaît ?

      1 Reply Last reply Reply Quote 0
      • F
        Florian22
        last edited by

        oui, je vais vous donner la solution :

        faites ce que vous faites actuellement avec une, ou deux machines physiques.

        et abandonnez votre hyperviseur.

        votre setup est sale.  vous feriez ca encore dans un datacenter dans l optique de securiser, de faire un frontal évolué, je dis pas

        mais la !  faire le frontal d'un site physique (chez vous), le virtualiser… ca pue.  votre problème prend sa source que vous faites qqch avec qqch qui n'a pas été concu pour cela

        ainsi vous ne pouvez pas éxclure le risque que des problèmes exotiques de ce type apparaissent.

        bien cordialement

        1 Reply Last reply Reply Quote 0
        • F
          Florian22
          last edited by

          par ailleurs sans connaitre la cadence des deux coeurs, je rajouterai que 1.5Go de ram pour proxmox c est un peu juste.
          squid, le portail captif, sont les plus voraces de RAM sur pfsense.

          sur un serveur qui gere environ 180 a 220 machines, ils consomment "d'emblée" 70% de la ram disponible (experience perso)

          en effet, vous pouvez facilement le voir, en stoppant squid+cp ou cp seul, quelques minutes puis redémarrer

          lorsque vous irez dans les RRD graphs, vous verrez un tres net décrochage des graphs

          1 Reply Last reply Reply Quote 0
          • J
            Juve
            last edited by

            Il faudrait regarder pourquoi Squid est à 100%, où se situe la charge (attente, traitement, kernel etc.)

            Sans plus d'informations, je pencherai pour un problème d'I/O WAIT durant le téléchargement (regarder %WA), probablement causé par un problème de performance au niveau disque/cache.

            1 Reply Last reply Reply Quote 0
            • M
              moulip
              last edited by

              Tout d'abord merci à vous deux pour vos réponses.
              Pour répondre à Florian, je ne suis pas sûr que mon setup soit si « sale » que ça. La virtualisation du FW se rencontre de plus en plus souvent.
              Les 1,5 Go de RAM sont dédiés à Pfsense l'host à 16 Go de RAM au total et est animé par un CPU AMD Phenom X4 955.
              Je ne constate pas de consommation de RAM/CPU par Squid en dehors des téléchargements et je n'ai pas de PC.
              Pour répondre à Juve (sei Juventino ?) je pense que tu as raison je m'en vais de ce pas vérifier les IO.

              1 Reply Last reply Reply Quote 0
              • M
                moulip
                last edited by

                J'ai regardé TOP et je n'ai pas %wa dans le CPU !
                C'est assez étrange. Par contre iostat ne remonte rien de particulier quand je télécharge.
                Comment afficher le taux d'IO WAIT ?

                1 Reply Last reply Reply Quote 0
                • F
                  Florian22
                  last edited by

                  toutes mes excuses, c est ma maniere de m exprimer mais ny voyez pas d injure

                  quand je dis sale , comprenez,  non standard (sujet à pb)

                  en effet, la virtualisation peut etre la cause des pb rencontrés sur ce type d'install

                  => il est atypique de virtualiser un routeur, un firewall

                  –
                  peut etre pouvez vous dans la lancée des conseils de juve, restreindre les fonctions de pfsense par "zoning" pour voir quel chainon de la virtualisation pose pb

                  => Couper tout le sysloging, le RRD, dans pfsense, dans squid,  éviter tous les accès disques au max

                  proxmox peut d'ailleurs dans son panel vous indiquer les points de charge
                  voyez vous également le délai I/O s'emballer pendant vos tests? le host laisse t il apparaitre qqch?

                  il est possible que le host aille très bien, on en revient au coté "sale", c'est a dire sujet a des pb exotiques de ce type

                  1 Reply Last reply Reply Quote 0
                  • F
                    Florian22
                    last edited by

                    et 1.5GO de ram c'est pas trop suffisant non plus

                    combien d'interfaces réseau physiques avez vous sur le proxmox?

                    1 Reply Last reply Reply Quote 0
                    • M
                      moulip
                      last edited by

                      Bonjour,

                      Je dispose de 2 interfaces physiques et 1 virtuelle pour la DMZ.

                      1 Reply Last reply Reply Quote 0
                      • F
                        Florian22
                        last edited by

                        vSwitch1(dhcp pfsense)                                                                                            vSwitch2 (dhcp box)
                        <–------------------------------------------------------------------>                                      <------------------------------------------------------->

                        CLIENT LAN <<>>          nic2 >>  VSWITCH PROXMOX >> KVM PFSENSE (PROXY)  >> VSWITCH PROXMOX >> WAN PROXMOX  >> nic1

                        vmbr1                              LAN                                  WAN                                vmbr0                  WAN
                                                                      <-------------------------------------------------------------------------------------------------------------------------->
                                                                        Hôte PROXMOX

                        Ce schema est il conforme a votre setup?

                        par ailleurs, vous n'êtes pas sans savoir que lorsque "CLIENT LAN" tire à 20mo/s  le host doit "logiciellement gerer ce trafic sur les deux
                        switchs.

                        (d'ou ma reflexion anterieure relative "a la saleté de l'idée qui consiste a virtualiser un routeur")

                        1 Reply Last reply Reply Quote 0
                        • M
                          moulip
                          last edited by

                          Bonjour Florian22,

                          Je n'avais pas vu votre message au-dessus de celui concernant le nombre d'interfaces physiques. Aussi vais-je vous répondre aux 2 restants ici.
                          Mais tout d'abord je tiens à vous remercier pour la qualité de l'aide que vous apportez. Je ne me suis senti « insulté » par votre réponse, rassurez-vous.

                          Pour répondre au delai d'IO sur Proxmox, il n'y en pas ou inférieur à 1% lors de mon test de téléchargement. Le CPU du host par contre monte à 50%.

                          Votre schéma est assez conforme en effet. Je vais tenter de le reproduire :

                          Pfsense :

                          em0(vmbr0)–------em1(vmbr1)-----------em2 (vmbr2)
                                ||                              ||                            ||
                              LAN                        PROXY                      DMZ
                                                                ||
                                                            WAN

                          Promox dispose de 2 interfaces physiques eth0 et eth1 et une virtuelle eth1:1.

                          Je vais refaire les tests en désactivant toutes les sources d'écriture. Par contre, je ne trouve pas l'indicateur affichant le % d'IOWAIT.
                          Savez-vous où pourrais-je trouver cette valeur ? TOP ne le montre pas.

                          1 Reply Last reply Reply Quote 0
                          • M
                            moulip
                            last edited by

                            La désactivation de toutes les sources d'IO ne change rien à l'affaire.

                            1 Reply Last reply Reply Quote 0
                            • F
                              Florian22
                              last edited by

                              je ne comprends pas trop votre schema, mais puisque vous etes d'accord avec le mien, je vais me garder le mien en tete

                              pouvez vous svp :

                              1/ lancer un gros dl par fetch dans la console pfsense (donc pas derriere lan) on utilise pas le vswitch interne, juste le vswitch de l interf publique pfsense

                              2/ allez dans prox  >  sortez le % cpu, et le I/O delay (disque)

                              3/ allez dans pfsense, > top  > sortez le taux interrupt (reseau)

                              4/ allez dans pfsense > top > sortez le taux CPU

                              5/ allez dans pfsense > top > sortez la valeur ram

                              puis refaites 2 a 5 en modifiant 1 > a savoir: vous me faites plus ca en fetch par pf, mais avec un PC sur LAN

                              arangez vous dans les deux tests pour avoir le même "tirage" (debit/nombre de threads)  (prenez plusieurs fetchs paralleles, ou plusieurs DL sur le PC lan si besoin est)
                              pour obtenir des tests comparables

                              peut etre allons nous voir des choses interessantes dans ce test croisé, puisque dans un, vous testez depuis l'interface WAN sur un seul vswitch en ssh et de l''autre vous faites toute la traversée

                              (et donc cette boucle "sale", puisque j'espere que vous avez pu constater que vous infligez une grosse boucle au host?)
                              (c'est pour ca que je dis que c'est sale)  (on ne virtualise pas un firewall normalement)

                              ps: il est possible que vous ne puissiez pas regler le probleme, la virtualisation peut causer des problemes tres exotiques dans certains cas (drivers cartes réseau etc)

                              ps2: pouvez vous me confirmer que vous avez bien capté que votre config fait faire une boucle au trafic, et que pour 1 méga consommé au départ du LAN vous faites travailler le host pour 2 megas, puisque le trafic entre, sort, rerentre et ressort

                              1 Reply Last reply Reply Quote 0
                              • M
                                moulip
                                last edited by

                                Voici les résultats :

                                J'ai fait un fetch et un wget d'un fichier d'1 Go.

                                Voici les valeurs du fetch sur pfsense :
                                Proxmox : CPU : ~35%, IO delay ~3%
                                Pfsense : Interrupt : 10%, CPU : ~70% system, RAM : 165 active, 930 inactif.

                                J'obtiens les mêmes valeurs depuis le LAN. En revanche ce test m'a permis de me rendre compte que même sans Proxy activé, j'obtenais des valeurs identiques en terme de ressources CP. Par contre je retrouve l'intégralité de ma bande passante. Ce qui m'amène à penser que la charge CPU excessive et la baisse de bande passante, ne sont pas corrélées.

                                1 Reply Last reply Reply Quote 0
                                • M
                                  moulip
                                  last edited by

                                  Par contre chose étrange, avec fetch sur pfense je ne dépasse pas les 20-22 MB/s, alors que je suis à plus de 30 sur le LAN sans proxy.

                                  1 Reply Last reply Reply Quote 0
                                  • F
                                    Florian22
                                    last edited by

                                    1/ Quel est le débit pour les tests (voir RRD)

                                    2/ quel est le gabarit proxmox utilisé pour pfsense (ressources)

                                    3/ quel est la frequence, la ram installée du host px

                                    4/ quel type de carte reseau utilisez vous

                                    1 Reply Last reply Reply Quote 0
                                    • F
                                      Florian22
                                      last edited by

                                      quel type de connexion avez vous?
                                      quel type de ressource a servi au test?

                                      je vous avais dit de prendre plusieurs threads (fetch) pour pousser la ligne dans ses retranchements

                                      prenez 7-8 fichiers 10G sur ovh.net, et relevez les valeurs moyennes sur 3-4 min

                                      plus votre test va durer longtemps, plus vous aurez des valeurs graphées dans rrd  laissez tourner les threads pour chaque test 10 minutes
                                      puis sortez nous les captures RRD de la section "system" et de "trafic"

                                      pour chacun  des deux tests.

                                      n'oubliez pas également de me dire si pfsense dispose de 100% des capacités CPU dans le gabarit proxmox, si il partage les ressources avec d'autres unités, ainsi que les spec techniques du host

                                      une fois toutes ces infos glanées, on pourra en dire plus (sans garantie)

                                      desactivez pour vos tests :  ¨Portail captif + proxy + tout service inutile, éteignez les autres VM présentes sur le HOST

                                      1 Reply Last reply Reply Quote 0
                                      • F
                                        Florian22
                                        last edited by

                                        quelles valeurs sont cochées dans votre pfsense sous la section system > advance > networking

                                        il y a 5 options cochables,  lesquelles sont actives/inactives

                                        1 Reply Last reply Reply Quote 0
                                        • M
                                          moulip
                                          last edited by

                                          Ma connexion est une ligne fibre FTTH 280/50.
                                          Le host dispose de 8 Go de RAM et d'un processeur cadencé à 3,2 Ghz
                                          Les cartes dont des Intel Pro 1000
                                          Le gabarit PFsense est le suivant : Memory 1.34GB, Processors 2 (1 socket, 2 cores) host, HDD scsi 20G format RAW, 3 nics e1000
                                          Pfsense n'a pas de limitation en termes de ressources. Il est installé avec d'autres VMs bien entendu.

                                          Je précise toutefois que je ne rencontre des problèmes de débit qu'au travers du Proxy Squid. Si je le désactive je retrouve 100% des capacités de la ligne.
                                          Je vais néanmoins faire les tests demandés.

                                          1 Reply Last reply Reply Quote 0
                                          • M
                                            moulip
                                            last edited by

                                            Les options Networking :

                                            Sont cochées Disable hardware TCP segmentation offload et disable hardware large receive offload

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.