Articles of multithreading

uWSGI: J’ai un problème avec le mode threadé

Si j’utilise uWSGI sans mode threadé, cela fonctionne bien. Mais mon serveur d’origine fonctionne avec Apache ServerLimit 1, en mode threadé. Il peut gérer une connexion simultanée, mais mon uWSGI ne peut pas (parce que travailleur seulement 1, je pense). J’essaie donc d’ouvrir le mode threaded, mais j’obtiendrai le message d’erreur 502 Bad Gateway de […]

Trop de threads uwsgi en cours d’exécution

Bonjour, Je suis nouveau dans les infrastructures de serveurs Web et l’administration. J’ai le problème suivant avec un serveur Web que j’essaie de monter, en utilisant nginx + uwsgi + django et python: à chaque actualisation ou requête de la page Web, uwsgi crée 2 ou 3 nouveaux threads qui ne se terminent jamais. Après […]

Quand le servlet publie-t-il son thread

En supposant qu’aucune persistance ne survienne, lorsqu’un conteneur de servlets agit en tant que serveur autonome, je suppose que le thread du servlet n’est pas libéré tant que la réponse complète n’a pas été envoyée au client (par exemple, un navigateur Web). est-ce une supposition correcte? Mais que se passe-t-il si la servlet est derrière […]

Multithreading Nginx + fastcgi

Bonjour, j’ai essayé de faire une application fastcgi, et je veux qu’il soit multithreadé pour qu’il puisse gérer beaucoup de requêtes à la fois. J’ai trouvé le code et l’ai modifié un peu FCGX_InitRequest(&request, 0, FCGI_FAIL_ACCEPT_ON_INTR); for (;;) { static pthread_mutex_t accept_mutex = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t counts_mutex = PTHREAD_MUTEX_INITIALIZER; pthread_mutex_lock(&accept_mutex); rc = FCGX_Accept_r(&request); pthread_mutex_unlock(&accept_mutex); … […]

Comment php-fpm gère-t-il les travailleurs avec un gestionnaire de processus dynamic?

Je voudrais clarifier comment php-fpm gère les travailleurs avec un gestionnaire de processus dynamic . Supposons que nous ayons la configuration suivante: pm = dynamic pm.max_children = 100 pm.start_servers = 30 pm.min_spare_servers = 20 pm.max_spare_servers = 60 quand php-fpm démarre, 30 processus sont générés il n’y a pas de connexion. Le php-fpm va-t-il arrêter 10 […]

uWSGI + nginx pour l’application django évite le problème de concurrence multi-threads pylibmc?

introduction J’ai rencontré cette question très intéressante cette semaine, mieux vaut commencer par quelques faits: pylibmc n’est pas pylibmc threads , lorsqu’il est utilisé en tant que django memcached backend, le démarrage direct de plusieurs instances de django dans le shell échouera lors de requêtes simultanées. si déployer avec nginx + uWSGI, ce problème avec […]

Réutiliser les threads tomcat en attendant un “long” temps

LA CONFIGURATION Serveur Web: Nginx Serveur d’applications: Tomcat avec configuration par défaut de 200 threads de service de requêtes Temps de réponse attendu pour mon serveur: ~ 30 secondes (il y a beaucoup de dépendances tierces) LE SCÉNARIO Toutes les 10 secondes, l’application devra générer le jeton pour son utilisation. Le temps prévu pour la […]

Comment exécuter un travail de longue durée en arrière-plan en Python

J’ai un service Web qui exécute des travaux de longue durée (de l’ordre de plusieurs heures). Je développe ceci en utilisant Flask, Gunicorn et nginx. Ce que je pense faire, c’est d’avoir une route qui prend beaucoup de temps, appeler une fonction qui crée un thread. La fonction renverra alors un guid à la route, […]

Est-il sûr d’appeler le système (3) à partir d’un processus multithread?

system() est implémentée en utilisant les fonctions fork() , execve() et wait() . J’ai entendu dire que la fonction fork() est dangereuse dans les programmes multithread. Ainsi, la fonction system() est-elle également dangereuse dans les programmes multithread? Quels problèmes cela peut causer?

Linux: system () + traitement SIGCHLD + multithreading

J’ai une application multithread qui installe un gestionnaire pour SIGCHLD qui se connecte et récupère les processus enfants. Le problème que je vois commence lorsque je fais un appel à system() . system() doit attendre la fin du processus fils et le récupérer lui-même car il a besoin du code de sortie. C’est pourquoi il […]