equal
deleted
inserted
replaced
21 } |
21 } |
22 else { |
22 else { |
23 val Physical = """^\s*physical id\s*:\s*(\d+)\s*$""".r |
23 val Physical = """^\s*physical id\s*:\s*(\d+)\s*$""".r |
24 val Cores = """^\s*cpu cores\s*:\s*(\d+)\s*$""".r |
24 val Cores = """^\s*cpu cores\s*:\s*(\d+)\s*$""".r |
25 |
25 |
26 var physical: Option[Int] = None |
26 val physical_cores: Int = { |
27 var physical_cores = Map.empty[Int, Int] |
27 var physical: Option[Int] = None |
|
28 var cores = Map.empty[Int, Int] |
28 |
29 |
29 val result = ssh.execute("cat /proc/cpuinfo").check |
30 val result = ssh.execute("cat /proc/cpuinfo").check |
30 for (line <- Library.trim_split_lines(result.out)) { |
31 for (line <- Library.trim_split_lines(result.out)) { |
31 line match { |
32 line match { |
32 case Physical(Value.Int(i)) => physical = Some(i) |
33 case Physical(Value.Int(i)) => physical = Some(i) |
33 case Cores(Value.Int(i)) |
34 case Cores(Value.Int(i)) |
34 if physical.isDefined && !physical_cores.isDefinedAt(physical.get) => |
35 if physical.isDefined && !cores.isDefinedAt(physical.get) => |
35 physical_cores = physical_cores + (physical.get -> i) |
36 cores = cores + (physical.get -> i) |
36 case _ => |
37 case _ => |
|
38 } |
37 } |
39 } |
|
40 cores.valuesIterator.sum |
38 } |
41 } |
39 physical_cores.valuesIterator.sum max 1 |
42 if (physical_cores > 1) physical_cores else 1 |
40 } |
43 } |
41 |
44 |
42 |
45 |
43 /* max_threads */ |
46 /* max_threads */ |
44 |
47 |