Squid3 CPU monte à 100% lors de téléchargements + baisse de bande passante
-
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 PROXMOXCe 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")
-
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
||
WANPromox 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. -
La désactivation de toutes les sources d'IO ne change rien à l'affaire.
-
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 comparablespeut 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
-
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.
-
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/ 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
-
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
-
quelles valeurs sont cochées dans votre pfsense sous la section system > advance > networking
il y a 5 options cochables, lesquelles sont actives/inactives
-
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. -
Les options Networking :
Sont cochées Disable hardware TCP segmentation offload et disable hardware large receive offload
-
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.reduisez au minimum les parametres…
ide ou sata pour le disque dur... par exemple
eteignez les autres VM, et donnez 100% du CPU et de la RAM dispo (95% si vous voulez)
faites cela a l 'occasion d'un 3e test
quel type de processeur virtuel utilisé? kvm64?
-
Legacy pour quel item ?
Il ne me semble pas que Proxmox permette de distribuer les ressources selon les Vms.
Il existe la notion de CPU units mais ce n'est pas tout à fait la même chose. Pour la RAM il n'y a aucune contention. -
ben si, c est le principe d un hyperviseur, vous affectez un nombre de vcore
donnez les lui tous
pour la ram pareil, c est reglable
-
en clair => si votre pfsense en temps que vm, n a acces qu a un seul coeur sur 4 dispo par exemple
ca me choque pas outre mesure que vous montiez a 75% de ce même coeur… :)
-
J'ai dédié 2 coeurs à cette VM.
-
sur combien?
type de vcore?
-
2 sur 4 par contre vcore ?
Je pense que c'est une notion Vmware. Mais si c'est le type de CPU alors j'ai choisi HOST à savoir que la VM voit le « vrai » CPU du host. -
non
dans proxmox a coté du nombre de coeurs, vous avez le type d'emulation du cpu (vcpu)
donnez lui les 4 pour le 3e test a faire (rebootez la vm entre les changements sur prox)
by the way : a quoi vous sert franchement pfsense? qu'attendez vous du reseau que vous montez?
– je ne pense pas que vous ayez la bonne approche -- globalement
-
alors j'ai choisi HOST à savoir que la VM voit le « vrai » CPU du host.
cela ne me parle pas ce que vous me dites