터미널 창에서 명령을 어떻게 조절합니까?


9

convert동시에 많은 이미지 로 실행 해야했습니다. 명령이 꽤 오래 걸렸지 만 이것은 나를 귀찮게하지 않습니다.

문제는 명령이 실행되는 동안 (약 15 분 동안)이 명령으로 컴퓨터를 사용할 수 없게되었다는 것입니다.

따라서 명령 줄에서 직접 리소스 (프로세서 및 메모리)를 명령으로 제한하여 명령을 제한 할 수 있습니까? 프로세스를 시작하면 컴퓨터 속도가 너무 느려서 "시스템 모니터"로 전환하고 우선 순위를 낮추는 것이 불가능하기 때문에 누르기 전에 같은 줄 에 무언가 추가하는 경우에만 작동합니다 Enter.

편집 : 상단 및 아이오 탑 결과

나는 실행 관리 topsudo iotop >iotop.txt이러한 변환 작업 중 하나를 수행하면서. (생성 된 iotop.txt 파일을 읽기가 어렵습니다)

최고 결과 :

   PID 사용자 PR NI VIRT RES SHR S % CPU % MEM TIME + 명령           
14275 사용자 이름 20 4043m 3.0g 1448 D 7.0 80.4 0 : 16.45 변환 

아이오 토프 결과 :

[? 1049h [1; 24r (B [m [4l [? 7h [? 1h = [39; 49m [? 25l [39; 49m (B [m [H [2JTotal DISK READ : 1269.04 K / s | 총 디스크 쓰기)) ") : [59G0.00 B / s
(B [0; 7m TID PRIO 사용자 디스크 읽기 디스크 쓰기 쓰기 스위치 (B [0; 1; 7m IO> (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 사용자 이름 568.88 K / s 0.00 B / s 77.41 % 0.00 % --rendere ~ .530483991 [5; 1H14275 유휴 사용자 이름 350.08 K / s 0.00 B / s 37.49 % 0.00 % 변환 S ~ f test.pdf [6 ; 2H2048은 / 4 근 [6; 24H0.00 B / s 0.00B / s 0.00 % 0.00 % [kworker / 3 : 2]
[5G1 be / 4 근 [7; 24H0.00 B / s 0.00 B / s 0.00 % 0.00 % 초기화

또한 프로세스가 끝난 후에도 컴퓨터는 이전 성능으로 돌아 오지 않습니다. 나는 달리고 sudo swapoff -a나서 다음 과 같은 방법을 찾았 습니다.sudo swapon -a

답변:


5

오, 소년, 방금 이걸 잡았는데 ...

또한 프로세스가 끝난 후에도 컴퓨터는 이전 성능으로 돌아 오지 않습니다. 나는 달리고 sudo swapoff -a나서 다음 과 같은 방법을 찾았 습니다.sudo swapon -a

즉, 시스템에서 사용 가능한 RAM을 모두 사용 했으므로 convert한 번에 너무 많은 프로세스 를 실행하려고한다는 것을 의미합니다 . 우리는 convert조언하기 위해 스폰에서 실제 구문을 살펴볼 필요가 있지만 기본적으로 RAM을 편안하게 처리하는 것보다 더 많은 동시 프로세스를 열지 않도록해야합니다.

이 문제의 원인은 convert *.tif blah.pdf이므로 모든 단일 TIF의 내용과 PDF 로의 변환이 RAM에 한 번에 채워지고 있음을 알려줍니다. 당신이해야 할 일은 필요하지 않도록 작업을 분할하는 것입니다. 생각 나게하는 한 가지 가능성은 대신 find . -iname '*.tif' | xargs -I% convert % %.pdf, 다음 pdftk과 같은 것을 사용하여 모든 개별 PDF를 함께 붙일 수 있습니다. 당신이 경우 정말 멋진을 얻으려면, 당신은 멀티 코어 CPU를 가지고,이 또한 복스 당신은 기회의 일괄 실행 변환에 작은 스크립트를 작성하는 N , N 코어의 전화 번호이며, 모든 것은 훨씬 빠르게 끝낼 . :)

pdftk 사용법 : http://ubuntuhowtos.com/howtos/merge_pdf_files (기본적으로 sudo apt-get install pdftk; pdftk *.pdf cat output merged.pdf)


convert *.tif bla.pdf한 번에 하나의 프로세스 만 실행 하고 있지만 입력은 전체 tif 이미지입니다. 그것은 잘 작동하지만 내 PC를 방해하는 많은 이미지에서 하나의 PDF를 생성하는 방법입니다.
해야할

^^ 수정 된 답변을 참조하십시오 :)
Jim Salter

이것은 하나의 간단한 수정으로 완벽하게 작동했습니다. find . -iname '*.tif' | xargs -I% convert % %.pdf대신에 find . -iname '*.pdf' | xargs -I% convert % %.pdf. 너무 빨랐습니다! 감사.

죄송합니다, 고장 :-) 뇌와 손가락 사이
짐 솔터

하나의 작은 수정…에 대한 -exec-execdir옵션에 대해 아는 것이 좋습니다 find. 귀하의 경우에는을 사용하는 대신 다음을 사용 xargs합니다.find -iname '*.tif' -execdir convert {} {}.pdf ';'
Paddy Landau

12

man nice그리고 I / O 조절이 필요한 경우 man ionice.

몇 가지 간단한 예를 살펴 보겠습니다.

CPU 사용량 조절 :

you@box:/$ nice -n 10 /usr/bin/convert blah.gif blah.jpg

그러나 귀하의 설명에 따르면 CPU 사용은 거의 확실하게 실제 문제가 아닙니다. 아마도 I / O 경합이 심할 수 있습니다.

조절 디스크 사용량 :

you@box:/$ ionice -c2 -n7 /usr/bin/convert blah.gif blah.jpg

-c2"최선의 노력"이며 -n7가장 낮은 "최상의 노력"우선 순위입니다. 따라서 이것은 시스템의 다른 것보다 I / O 우선 순위를 낮추는 작업을 제한합니다.

you@box:/$ ionice -c3 /usr/bin/convert blah.gif blah.jpg

-c3(우선 순위 수준 필요 없음)은 "유휴 만"을 의미합니다. -c3그렇지 않으면 유휴 디스크 예약 시간 만 사용하도록 설정 한 작업 은 시스템에 거의 영향을 미치지 않지만 나머지 시스템의 사용률에 따라 작업 실행 시간 이 상당히 길어질 수 있습니다.


nice변환 명령을 어떻게 통합 합니까? 내가 잘못하지 않으면 이미 실행중인 프로세스에서 훌륭하게 작동합니다.
하려면

1
위 참조 ... 또한, srsly, man 페이지를 읽으십시오. 매우 쉬운 매뉴얼 페이지이며 전혀 질 기지 않습니다. :-)
Jim Salter

나는 그것을 시도했다. 도움이되었지만 충분하지 않습니다. nice -n 20다음에 해볼 게요 .
위해 할

솔직히 나는 CPU 부하가 당신의 문제인지 확실하지 않습니다. iotop프로세스를 실행 하는 동안 해 보셨습니까 ? 일반적으로 많은 CPU를 소비하는 단일 프로세스는 시스템의 유용성에 거의 영향을 미치지 않지만 하드 드라이브를 스 래싱하는 프로세스는 특히 SSD가 아닌 기존 드라이브를 사용하는 경우 모든 것을 빠르게 멈출 수 있습니다.
Jim Salter

전체 시스템을 사용할 수 없게 convert blah.gif blah.jpg & iotop되므로 작업을 iotop시작하자마자 즉시 실행 되도록 줄을 따라 무언가를 시도 할 수 있습니다 convert.
Jim Salter

2

다음 cpulimit은 프로세스의 CPU 사용량을 제한하기 위해 호출되는 프로그램을 사용하는 것에 대한 꽤 좋은 기사입니다 .

http://maketecheasier.com/limit-cpu-usage-of-any-process-in-linux/2010/09/22

문제는 convert프로세스가 시작된 후 PID를 찾는 것과 같습니다 .

시작한 convert후에도 여전히 터미널에 명령을 입력 할 수 있으면 ps aux | grep convertPID를 찾은 다음 sudo cpulimit -p PID -l CPU%조절을 시작할 수 있습니다.

또는 시작 convert도 터미널을 잠그면 cpulimit특정 양의 CPU 사용량에 대한 프로세스를 자동으로 모니터링하고 조절하는 백그라운드 데몬으로 실행하는 방법을 설명합니다 . 행운을 빕니다!


이 스크립트는 나쁜 생각이며 기본 제공 nice명령 과 비교할 때 기본적 입니다. cpulimitCPU 시간이 필요한지 여부에 관계없이 프로세스를 특정 CPU 사용률로 제한합니다. nice반대로 우선 순위 수준 (총 40 개)을 설정하여 한 작업의 우선 순위를 다른 작업보다 우선적으로 지정할 수 있습니다.
Jim Salter
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.