Maison  >  Article  >  cadre php  >  Workman peut-il être exécuté dans plusieurs processus ?

Workman peut-il être exécuté dans plusieurs processus ?

(*-*)浩
(*-*)浩original
2019-12-12 10:10:415298parcourir

Workman peut-il être exécuté dans plusieurs processus ?

Afin de faire jouer pleinement les performances du multi-CPU du serveur, WorkerMan prend en charge le multi-processus et le multi-tâches par défaut.

WorkerMan démarre un processus principal et plusieurs sous-processus pour fournir des services externes. Le processus principal est responsable de la surveillance des sous-processus. Les sous-processus surveillent indépendamment les connexions réseau et reçoivent, envoyer et traiter des données En raison du modèle de processus simple, ce qui rend WorkerMan plus stable et efficace. (Apprentissage recommandé : tutoriel travailleur )

Workman peut-il être exécuté dans plusieurs processus ?

Créer un processus principal (processus démon) Une fois démarré, il s'exécutera en arrière-plan pendant). longtemps, même s'il est arrêté. Supprimez la page du navigateur.

Le thread principal interroge périodiquement la base de données (MySQL) Une fois qu'une URL répondant aux conditions (éventuellement plusieurs) est trouvée, un nombre correspondant de processus enfants sont créés.

Le processus enfant doit également exister pendant une longue période, interrogeant régulièrement le serveur correspondant à l'URL pour récupérer les données

Une fois que le processus enfant a récupéré. les données requises, il enregistrera les résultats dans la base de données et se terminera de lui-même (ou sera fermé par le processus principal) ).

Principes de définition du nombre de processus

1. La somme de la mémoire occupée par chaque processus doit être inférieure à la mémoire totale (en général, chaque processus métier occupe environ 40 Mo de mémoire))

2 S'il est gourmand en IO, c'est-à-dire. , l'entreprise implique certains blocages d'E/S, tels que l'accès général au stockage tel que Mysql et Redis, qui bloquent l'accès, le nombre de processus peut être augmenté, comme Configurer jusqu'à 3 fois le nombre de cœurs de processeur.

S'il y a beaucoup de blocages et d'attentes impliqués dans l'entreprise, vous pouvez augmenter le nombre de processus de manière appropriée, par exemple 5 fois le nombre de cœurs de processeur ou même plus. Notez que les E/S non bloquantes sont gourmandes en CPU et non en E/S.

3. S'il est gourmand en CPU, c'est-à-dire qu'il n'y a pas de surcharge d'E/S bloquantes dans l'entreprise, par exemple, si des E/S asynchrones sont utilisées pour lire les ressources réseau et que le processus ne sera pas bloqué par l'entreprise. code, le nombre de processus peut être défini sur Identique au nombre de cœurs du processeur

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn