작업 관리자로 PBSpro가 설치된 공유 메모리 서버가 있습니다. 총 320개의 코어가 있고 pbs가 구성되어 32개의 CPU 중 30개를 포함하는 1개의 작업 대기열이 있으므로 300개의 물리적 코어는 헤드 노드에서 작동하기 위해 2개의 CPU 또는 20개의 코어를 남기고 사용자 간에 분할됩니다.
일부 소프트웨어는 100개가 넘는 코어에서 또는 병렬로 실행되며, 사용자 A의 N 프로세스가 사용자 B의 M 프로세스와 비교하여 고유하고 독립적인 코어 번호에서 실행되는지 확인하고 싶습니다.
사용하면 top
할 수 있어요
hit F to get into sort menu
hit J to sort by P = Last CPU used (SMP)
이렇게 하면 상단 출력에 코어 번호가 있는 P 열이 제공되지만 300개 코어 시스템, 1920x1200 모니터에서는 화면이 다 떨어지기 전에 약 70-80개 행만 표시됩니다. 터미널 창에서 글꼴 크기를 줄이기 시작할 수 있지만 결국에는 최대 300줄까지 볼 수 없게 되며 1..3초마다 업데이트하여 시각적으로 모두 처리할 수도 없습니다.
내 목표는 빠르고 쉽게
- 사용자가 헤드 노드가 아닌 작업 대기열의 올바른 코어 수 내에서 콘텐츠를 실행하고 있는지 확인합니다.
- 한 사용자에 대해 하나의 프로세스만 특정 CPU 코어에서 100% 또는 50% 이상으로 실행되고 있는지 확인하십시오. programA.x가 있는 사용자 A가 코어 #234에 있는 경우, everything.x가 있는 사용자 B가 코어 #234에 없는지 확인하고 싶습니다.
단일 이미지 공유 메모리 서버에 여러 코어가 있는 경우 가장 좋은 접근 방식은 무엇입니까?
답변1
사용자 정의 옵션 및 정렬 플래그와 함께 ps를 사용할 수 있습니다. 귀하의 질문에서 어떤 종류의 필터링을 원하는지 100% 확신할 수 없습니다.
그렇다면 모든 과정을 보여달라는 뜻일 수도 있습니다. CPU, 사용자 이름 및 프로세스 이름이 무엇인지 확인하고 싶습니다. CPU별로 정렬
ps ax -oc,사용자,통신 kc
"ax"는 모든 프로세스를 의미하고 "-oc, user, comm"은 표시할 열을 의미하며 "kc"는 CPU별로 정렬한다는 의미입니다.