J'avais besoin de courir convert
avec beaucoup d'images en même temps. La commande a pris un certain temps mais cela ne me dérange pas.
Le problème est que cette commande a rendu mon ordinateur inutilisable pendant son exécution (pendant environ 15 minutes).
Est-il donc possible de limiter la commande en limitant les ressources (processeur et mémoire) à la commande, directement depuis la ligne de commande? Cela ne peut fonctionner que si j'ajoute quelque chose à la même ligne avant d'appuyer sur, Entercar une fois que je démarre le processus, l'ordinateur ralentit tellement qu'il est impossible par exemple de basculer vers "Moniteur système" et de réduire la priorité.
Modifier: résultats top et iotop
J'ai réussi à exécuter top
et à sudo iotop >iotop.txt
effectuer l'une de ces opérations de conversion. (Le fichier iotop.txt produit est difficile à lire)
Résultats de haut:
UTILISATEUR PID PR NI VIRT RES SHR S% CPU% MEM TIME + COMMAND 14275 nom d'utilisateur 20 0 4043m 3.0g 1448 D 7.0 80.4 0: 16.45 convert
Résultats de iotop:
[? 1049h [1; 24r (B [m [4l [? 7h [? 1h = [39; 49m [? 25l [39; 49m (B [m [H [2JTOTAL DISK READ: 1269.04 K / s | Total DISK WRITE)) : [59G0.00 B / s (B [0; 7m TID PRIO USER DISK READ DISK WRITE SWAPIN (B [0; 1; 7m IO> (B [0; 7m COMMAND [3; 2H (B [m2516 be / 4 username 350.08 K / s 0.00 B / s 0,00% 0,00% zeitgeist-datahub 7394 be / 4 nom d'utilisateur 568,88 K / s 0,00 B / s 77,41% 0,00% --rendere ~ .530483991 [5; 1H14275 nom d'utilisateur inactif 350,08 K / s 0,00 B / s 37,49% 0,00% convertir S ~ f test.pdf [6 ; 2H2048 être / 4 racine [6; 24H0,00 B / s 0,00 B / s 0,00% 0,00% [kworker / 3: 2] [5G1 be / 4 racine [7; 24H0,00 B / s 0,00 B / s 0,00% 0,00% init
En outre, même après la fin du processus, l'ordinateur ne revient pas aux performances précédentes. J'ai trouvé un moyen de contourner cela en courant sudo swapoff -a
suivi desudo swapon -a
convert *.tif bla.pdf
processus à la fois, mais l'entrée est un tas d'images tif. C'est un moyen de produire un pdf à partir d'un tas d'images qui fonctionne bien mais étouffe mon PC.find . -iname '*.tif' | xargs -I% convert % %.pdf
au lieu defind . -iname '*.pdf' | xargs -I% convert % %.pdf
. C'était plus rapide aussi! Merci.-exec
et les . Dans votre cas, au lieu d'utiliser , j'utiliserais:-execdir
find
xargs
find -iname '*.tif' -execdir convert {} {}.pdf ';'
man nice
Et si vous avez besoin d' étranglement d' E / Sman ionice
.Regardons quelques exemples simples.
Limitation de l'utilisation du processeur:
D'après votre description, cependant, l'utilisation du processeur n'est certainement pas votre vrai problème ici. Plus probablement, vous rencontrez de graves conflits d'E / S.
Utilisation du disque de limitation:
-c2
est le "meilleur effort", et-n7
est la priorité la plus basse "au meilleur effort". Ainsi, cela réduira le travail pour réduire la priorité d'E / S par rapport à la plupart des autres éléments du système.-c3
(aucun niveau de priorité nécessaire) signifie "Inactif uniquement". Les travaux définis sur-c3
UNIQUEMENT prennent du temps de planification de disque autrement inactif, pour pratiquement aucun impact sur le système - mais potentiellement un temps d'exécution considérablement plus long pour votre travail, en fonction de l'occupation du reste du système.la source
nice
dans une commande de conversion? Si je ne me trompe pas, cela fonctionne bien pour les processus déjà en cours d'exécution.nice -n 20
prochaine fois.iotop
lors de l'exécution du processus? Habituellement, un seul processus consommant beaucoup de CPU aura très peu d'effet sur l'utilisabilité du système, mais un processus qui écrase le disque dur peut TRÈS rapidement tout arrêter brutalement - surtout si vous utilisez un lecteur conventionnel, pas un SSD.convert blah.gif blah.jpg & iotop
ce quiiotop
se déclenchera instantanément dès que vous aurez commencé votreconvert
travail.Voici un assez bon article sur l'utilisation d'un programme appelé
cpulimit
pour limiter l'utilisation du processeur de tout processus:http://maketecheasier.com/limit-cpu-usage-of-any-process-in-linux/2010/09/22
Le problème est comme vous l'avez dit trouver le PID du
convert
processus après son démarrage.Après avoir démarré
convert
si vous pouvez toujours taper des commandes dans le terminal, vous pouvez exécuterps aux | grep convert
pour trouver son PID, puissudo cpulimit -p PID -l CPU%
pour commencer la limitation.Ou si le démarrage
convert
verrouille également votre terminal, l'article vous montre comment vous pouvez exécuter encpulimit
tant que démon d'arrière-plan qui surveillera et limitera automatiquement tous les processus sur une certaine quantité d'utilisation du processeur. Bonne chance!la source
nice
commande intégrée .cpulimit
limitera le processus à un certain% d'utilisation du processeur, que quoi que ce soit d'autre ait besoin du temps du processeur;nice
, en revanche, définit des niveaux de priorité (40 au total!) qui permettent de hiérarchiser une tâche au-dessus (ou en dessous) des autres.