GNU/Linux >> Tutoriels Linux >  >> Linux

Pourquoi le PC se fige-t-il pendant que je copie un fichier sur une clé USB ?

J'ai une situation vraiment étrange ici. Mon PC fonctionne bien, du moins dans la plupart des cas, mais il y a une chose que je ne peux pas gérer. Quand j'essaie de copier un fichier depuis ma clé USB, tout va bien — j'ai 16-19M/s, ça marche plutôt bien. Mais lorsque j'essaie de copier quelque chose sur la même clé USB, mon PC se bloque. Le pointeur de la souris s'arrête de bouger pendant une seconde ou deux, puis il bouge un peu et s'arrête à nouveau. Quand quelque chose joue, par exemple, dans Amarok, le son agit comme une mitrailleuse. La vitesse passe de 500K/s à 15M/s, moyenne 8M/s. Cela se produit uniquement lorsque je copie quelque chose sur une clé USB. Lorsque le processus de copie est terminé, tout redevient normal.

J'ai tout essayé - une autre clé USB, un port USB différent sur le panneau avant ou ces ports à l'arrière, j'ai même changé les broches USB sur la carte mère (panneau avant), mais peu importe où je mets ma clé USB, c'est toujours la même chose. J'ai essayé un système de fichiers différent — fat32 , ext4 . Je n'ai aucun problème avec l'appareil sous Windows, sur mon portable. Ce doit être mon PC ou quelque chose dans mon système. Je n'ai aucune idée de ce qu'il faut chercher. J'utilise les tests Debian avec Openbox autonome. Mon PC est un peu vieux - Pentium D 3 GHz, 1 Go de RAM, disque WD Green de 1,5 To. Si vous avez quelque chose qui pourrait m'aider à résoudre ce problème, je serais heureux de l'entendre.

Je ne sais pas quelles autres informations je devrais fournir, mais si vous avez besoin de quelque chose, demandez simplement, je mettrai à jour ce message dès que possible.

J'ai essayé de reproduire ce problème sur le live cd d'ubuntu 13.04. J'ai monté ma partition cryptée + swap crypté et connecté ma clé USB à un port USB. Ensuite, j'ai essayé de démarrer certaines applications, et maintenant j'ai environ 820 Mo de RAM et environ 400 Mo de SWAP. Il n'y a aucun problème avec la copie, pas de gel du tout, tout est comme il se doit. Donc, on dirait que c'est un défaut du système, mais où exactement ? Qu'est-ce qui causerait un comportement aussi bizarre ?

Réponse acceptée :

Utilisez-vous une version 64 bits de Linux avec beaucoup de mémoire ? Dans ce cas, le problème pourrait être que Linux peut se verrouiller pendant des minutes sur de grosses écritures sur des appareils lents comme par
exemple des cartes SD ou des clés USB. C'est un bogue connu qui devrait être corrigé dans les nouveaux noyaux.

Voir http://lwn.net/Articles/572911/

Solution :en tant que problème racine :

echo $((16*1024*1024)) > /proc/sys/vm/dirty_background_bytes
echo $((48*1024*1024)) > /proc/sys/vm/dirty_bytes

Je l'ai ajouté à mon /etc/rc.local fichier dans mes machines 64 bits.

Connexe :Php :chown – Modifie le propriétaire du fichier

TANSTAAFL ; ce changement peut (et réduira probablement) votre débit vers ces appareils - c'est un compromis entre la latence et la vitesse. Pour revenir au comportement précédent, vous pouvez

echo 0 > /proc/sys/vm/dirty_background_bytes
echo 0 > /proc/sys/vm/dirty_bytes

…qui sont les valeurs par défaut, ce qui signifie que le comportement de réécriture sera contrôlé par les paramètres dirty_ratio et dirty_background_ratio .

Note pour les personnes pas si expertes avec Linux :les fichiers dans /proc sont des pseudofichiers - juste des canaux de communication entre le noyau et l'espace utilisateur. N'utilisez jamais un éditeur pour les modifier ou les consulter; obtenir à la place une invite du shell — par exemple, avec sudo -i (saveurs Ubuntu) ou su root et utilisez echo et cat ).

Mise à jour 2016/04/18 il semble qu'après tout, le problème soit toujours là. Vous pouvez le consulter sur LWN.net, dans cet article sur les files d'attente d'écriture différée.


Linux
  1. Pourquoi 'sshpass' n'est pas le bon moyen d'automatiser les transferts de fichiers sous Linux

  2. Pourquoi le script Bash ne reconnaît-il pas les alias ?

  3. La fête ?

  4. Est-ce que Mv Atomic est sur le F?

  5. Pourquoi le descripteur de fichier est-il ouvert et lu une seule fois ?

Comment exclure une extension de fichier spécifique lors de la copie récursive de fichiers

Pourquoi Ls et Hexdump ne sont-ils pas d'accord sur la taille du fichier ?

Pourquoi devons-nous passer deux fois le nom du fichier dans les fonctions Exec ?

Est-ce que l'annulation de l'opération lors de la copie d'un fichier .mkv le divise en 2 parties ?

Pourquoi avons-nous besoin de mktemp ?

Copier un fichier uniquement lorsqu'il est plus récent que la destination