Le téléchargement de fichiers est plus lent que la vitesse de téléchargement réseau de l’utilisateur sur Apache (EC2)

J’ai une instance EC2 exécutant une stack LAMP de base en tant que serveur Web. Les utilisateurs peuvent télécharger des photos via mon application Web, qui sont ensuite stockées dans un répertoire et enregistrées dans MySQL. Généralement, ces téléchargements se font aussi rapidement que le permet la vitesse de téléchargement sur Internet d’un utilisateur.

Malheureusement, plusieurs utilisateurs signalent que le téléchargement de photos ralentit parfois, ce qui prend jusqu’à 2 minutes par photo, alors que sur d’autres sites, les utilisateurs peuvent télécharger beaucoup plus rapidement.

Comment puis-je optimiser Apache (je suppose que c’est Apache?) Pour ne pas devenir un goulot d’étranglement? Ce problème pourrait-il être résolu avec MPM Preforking? Ou est-ce éventuellement un problème de locking de la firebase database?


Quelques statistiques supplémentaires de cette configuration (c’est joli la vanille):

Instance Type: t2.small EBS-optimized: False PHP v5.4 Server version: Apache/2.4.18 (Amazon)

La seule autre chose que je considère pertinente est que lors du téléchargement d’une photo, elle est redimensionnée via Imagick à une taille de vignette (ce qui est évidemment un peu gourmand en CPU, mais normalement c’est assez rapide).

Beaucoup d’informations laissées de côté, comme ce que vous courez, quelles sont vos spécifications. La première chose que je ferais est d’augmenter votre mémoire via le fichier php.ini.

set (‘memory_limit’, ’64M’); (le mien est réglé à 256m OU change globalement dans php.ini (dans Lampp situé dans ‘\ lampp \ php \ php.ini’):

memory_limit = 8M // recherche ce “memory_limit” et ajustez-le selon vos besoins. Après cela, redémarrez apache …

VOIR PIC. la mise en jaune devrait être comme suit.

entrer la description de l'image ici

Ce type de problème peut être dû à de nombreuses raisons. Mais parmi les variables que vous pouvez contrôler, vous pouvez commencer par la limitation du réseau. Fondamentalement, supposons que votre application compte dix utilisateurs. Tous avec la même vitesse de téléchargement. Quand ils essayent tous simultanément de télécharger des images. supposons que neuf obtienne une bonne vitesse. Mais comme votre serveur ne peut avoir qu’un taux de transmission fixe que les neuf utilisateurs utilisent, même si le dixième est avec les mêmes performances réseau, il téléchargera l’image plus lentement. Pour gérer ce problème, vous limitez la vitesse par connexion de votre serveur, également appelée limitation du réseau. Configurer le même en apache peut être trouvé ici . Mais là encore, il ne s’agit que d’une spéculation et, dans la vie réelle, il peut y avoir de nombreux facteurs.