2016-12-02 1 views
1

Maintenant, j'ai un serveur pour accepter le flux multimédia et enregistrer en fichiers mp4, et télécharger en s3, lorsque le niveau de concurrence est élevé, j'ai trouvé que c'est le téléchargement s3 qui a coûté le la plupart du cpu, et quand j'ai surveillé l'IO, j'ai également constaté que le coût de cpu a changé avec l'IO dehors à s3, et le taux d'IO (out) n'est pas stable. Donc je me demande s'il existe une méthode que je peux utiliser pour contrôler la vitesse de téléchargement sur s3? Par exemple, lorsque cette seconde le taux d'E/S est trop élevé, alors je le ralentis, donc il peut diviser le nombre total de fichiers par seconde. Et je me demande aussi si c'est faisable de baisser le coût du processeur.aws s3 optimisation de téléchargement, en utilisant java sdk

J'aimerais que quelqu'un puisse m'aider, merci et pardonnez-moi pour mon mauvais anglais.

Répondre

1

AWS S3 ne fournit aucune solution pour ralentir le transfert dont je suis conscient, cependant, vous pouvez essayer d'utiliser multipart uploads(中文) pour décomposer votre téléchargement en plusieurs flux simultanés. Cela pourrait rendre votre téléchargement plus gérable.

Notez que vous ne pouvez pas utiliser cette technique pour les fichiers de taille inférieure à 5 Mo, car chaque partie de téléchargement doit comporter au moins 5 Mo (sauf la dernière partie). Merci à @ Michael - sqlbot pour corriger cela)

(你 的 英文 很好, 我 可以 懂 你)

+0

Vous ne pouvez pas utiliser la technique pour les fichiers <5MB. Cela fonctionne, mais entraînera seulement plus de frais généraux car un fichier <5 Mo peut être téléchargé seulement dans une partie. Où avez-vous vu 100 Ko? –

+0

Vous avez raison. J'ai eu mes fils croisés en quelque sorte. J'ai mis à jour la réponse. Je vous remercie! – otakumike

+0

Merci, je l'avais déjà essayé, mais par cette méthode, je viens de trouver que je ne peux pas être effrayé que lorsque les téléchargements terminés (j'utilise S3ProgressListener pour être réveillé que si les téléchargements sont terminés, mais quand j'utilise des téléchargements multipart, je trouve que l'événement de transfert change à TRANSFER_COMPLETED_EVENT quand chaque segment est transféré, et je ne suis pas sûr du nombre total d'un fichier), au fait, comment pouvez-vous savoir que je suis un chinois (je devine par mon nom^_^..) ? –