feat/training_260303 #157
@@ -76,7 +76,8 @@ public class GpuDmonReader {
|
||||
|
||||
try {
|
||||
Thread.sleep(5000); // 5초 후에 시작
|
||||
} catch (InterruptedException ignored) {}
|
||||
} catch (InterruptedException ignored) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -86,16 +87,12 @@ public class GpuDmonReader {
|
||||
private void runDmon() throws Exception {
|
||||
|
||||
// GPU utilization만 출력 (-s u)
|
||||
ProcessBuilder pb = new ProcessBuilder(
|
||||
"nvidia-smi", "dmon", "-s", "u"
|
||||
);
|
||||
ProcessBuilder pb = new ProcessBuilder("nvidia-smi", "dmon", "-s", "u");
|
||||
|
||||
process = pb.start();
|
||||
|
||||
// dmon은 stdout으로 계속 데이터를 뿌림 (스트리밍)
|
||||
try (BufferedReader br = new BufferedReader(
|
||||
new InputStreamReader(process.getInputStream()))
|
||||
) {
|
||||
try (BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()))) {
|
||||
String line;
|
||||
|
||||
while ((line = br.readLine()) != null) {
|
||||
@@ -144,7 +141,8 @@ public class GpuDmonReader {
|
||||
if (process != null && process.isAlive()) {
|
||||
process.destroy();
|
||||
}
|
||||
} catch (Exception ignored) {}
|
||||
} catch (Exception ignored) {
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isNvidiaAvailable() {
|
||||
|
||||
@@ -68,9 +68,7 @@ public class SystemMonitorService {
|
||||
int index = entry.getKey();
|
||||
int util = entry.getValue();
|
||||
|
||||
gpuHistory
|
||||
.computeIfAbsent(index, k -> new ArrayDeque<>())
|
||||
.add(util);
|
||||
gpuHistory.computeIfAbsent(index, k -> new ArrayDeque<>()).add(util);
|
||||
|
||||
Deque<Integer> q = gpuHistory.get(index);
|
||||
if (q.size() > 30) q.poll();
|
||||
@@ -185,10 +183,7 @@ public class SystemMonitorService {
|
||||
// =====================
|
||||
// CPU 평균 (30초)
|
||||
// =====================
|
||||
dto.cpu = (int) cpuHistory.stream()
|
||||
.mapToDouble(Double::doubleValue)
|
||||
.average()
|
||||
.orElse(0);
|
||||
dto.cpu = (int) cpuHistory.stream().mapToDouble(Double::doubleValue).average().orElse(0);
|
||||
|
||||
// =====================
|
||||
// Memory (현재값)
|
||||
@@ -204,9 +199,7 @@ public class SystemMonitorService {
|
||||
|
||||
Deque<Integer> q = gpuHistory.get(index);
|
||||
|
||||
int avg = (int) (q == null ? 0 :
|
||||
q.stream().mapToInt(i -> i).average().orElse(0)
|
||||
);
|
||||
int avg = (int) (q == null ? 0 : q.stream().mapToInt(i -> i).average().orElse(0));
|
||||
|
||||
dto.gpus.add(new MonitorDto.Gpu(index, avg));
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ member:
|
||||
init_password: kamco1234!
|
||||
|
||||
swagger:
|
||||
local-port: 9080
|
||||
local-port: 8080
|
||||
|
||||
file:
|
||||
sync-root-dir: /app/original-images/
|
||||
|
||||
Reference in New Issue
Block a user