나는 터미널(stdout)에 출력을 쓰는 매우 간단한 웹 크롤러를 만들었으므로 일반적으로 그것이 얼마나 빨리 실행되는지 알고 있습니다. MySQL 테이블을 분리 tmux
하고 검사한 후 스크립트가 느리게 실행되는 것 같았습니다. (두 번째 터미널을 열어서 tmux
분리 전/후 속도를 비교해 봐야겠습니다 .)
tmux
어쨌든, 독립 실행형 세션이 너무 "좋은" 것인지 궁금합니다 . 내부를 들여다보면 top
내가 무엇을 찾고 있는지 잘 모르겠습니다. 알겠습니다 tmux
. 하지만 이것이 정말 독립형 세션인가요? tmux
분할 세션의 "친화성"을 어떻게 변경합니까 ? 운영 체제를 통해 이 작업을 수행합니까, 아니면 를 통해 수행합니까 tmux
?
답변1
귀하의 질문에 답변하려면: 기존 프로세스를 변경하려면 전화해 주세요.레니스. 이는 세션별이 아닌 프로세스별이므로 tmux 프로세스는 직접적인 관련이 없습니다. 크롤러의 프로세스 ID(예: ps x
Linux에서는 , 사용 또는 사용 pstree
)를 찾아 호출합니다 renice
.
그러나 두 가지 잘못된 가정을 하기 때문에 이는 도움이 되지 않습니다.
- tmux 세션을 분리하면 프로세스가 다시 시작되지만 그렇지 않습니다.
- 웹 크롤러의 품질이 속도에 영향을 미칠 가능성은 거의 없습니다. 제한 요소는 거의 항상 네트워크입니다.
크롤러가 잠시 후 속도가 느려지는 가장 큰 이유는 웹 사이트에서 취향에 대한 요청을 너무 많이 했기 때문에 IP 주소를 제한했기 때문입니다. 이에 대해 할 수 있는 일은 많지 않습니다(단, 사이트의 제한이 줄어들기를 바라면서 처음부터 요청 간격을 넓게 두는 것을 제외하고).
또는 프로세스 그룹이지만 여기서는 유용하지 않을 것입니다.
답변2
웹 크롤러의 우선순위를 변경해야 합니다. 아니요, tmux일 가능성은 없습니다. tmux에는 하위 bash가 있을 수 있으며 그 하위 항목은 프로그램이 됩니다.
저는 보통 프로그램 이름에서 pid를 찾지만, 그렇지 않으면 실행하면 pstree -p
이름을 몰라도 계층적으로 찾을 수 있습니다.
renice(1)을 사용하여 프로세스를 다시 시작할 수 있습니다. 예를 들면 다음과 같습니다.
renice 5 1234
또는. 더 자세하게,
renice -n 5 -p 1234
프로세스 1234를 우선순위 5로 조정
에서 이 작업을 수행할 수도 있습니다 . pid와 새로운 좋은 값을 묻는 두 개의 프롬프트를 top
누르고 응답하면 됩니다 .r