Sep
12
2010
Zawsze to zapominam
Wiec, jezeli system jest czysty i nie sa jeszcze aktywne repozytoria partnerow, nalezy je wlaczyc w System->Administracja->Zrodla oprogramowania – zaznaczamy odpowiednie pola wyboru.
Zamykamy, przeladowujemy i instalujemy JDK znanym juz poleceniem
czlowiek@maszyna:~$ sudo apt-get update && sudo apt-get install sun-java6-jdk
brak komentarzy | tagi: Java, Konfiguracja, Lucid Lynx, Oracle Java, Sun Java | wpis w Java, Konfiguracja
Sep
15
2009
Jak pobrac, naprzyklad, ilosc wolnej pamieci w systemie operacyjnym, na ktorym uruchomiona jest Javka, srednie wykorzystanie procesora lub jeszcze wolne miejsce na dysku. Mozna roznie, najczesciej korzysta sie ze skryptow, ale co z pure Java? I o tym wlasnie teraz a do pomocy mamy caly package java.lang.management i com.sun.management.
Dla nas najciekawszym bedzie OperatingSystemMXBean, interface umozliwiajacy pobranie info z systemu operacyjnego, na ktorym uruchomiona jest wirtualna maszyna Javy (JVM).
Info o systemie
OperatingSystemMXBean osmxb = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
System.out.println("System: " + osmxb.getName() + " "
+ osmxb.getVersion() + " (" + osmxb.getArch() + ")");
// System: Linux 2.6.28-15-generic (i386)
Fizyczna
System.out.println("RAM: "
+ (osmxb.getFreePhysicalMemorySize() / 1024 / 1024) + "/"
+ (osmxb.getTotalPhysicalMemorySize() / 1024 / 1024) + " MiB");
// RAM: 1454/3277 MiB
Swap
System.out.println("Swap: "
+ (osmxb.getFreeSwapSpaceSize() / 1024 / 1024) + "/"
+ (osmxb.getTotalSwapSpaceSize() / 1024 / 1024) + " MiB");
// Swap: 956/956 MiB
Srednie obciazenie
System.out.println("Load: " + osmxb.getSystemLoadAverage());
// Load: 1.41
No i CPU – tu trzeba troche pokombinowac
private static long lastSystemTime = System.nanoTime();
private static long lastProcessCpuTime = 0;
private double round(double value, int place) {
BigDecimal bd = new BigDecimal(value);
bd = bd.setScale(place, BigDecimal.ROUND_UP);
return bd.doubleValue();
}
public synchronized double getCpuUsage() {
long systemTime = System.nanoTime();
long processCpuTime = osmxb.getProcessCpuTime();
double cpuUsage = (double) (processCpuTime - lastProcessCpuTime)
/ (systemTime - lastSystemTime);
lastSystemTime = systemTime;
lastProcessCpuTime = processCpuTime;
return round(cpuUsage / osmxb.getAvailableProcessors(), 2);
}
System.out.println("CPU: " + getCpuUsage() + " %");
// CPU: 23.69 %
Wiecej informacji na temat uzytych tu pakietow, mozna uzyskac tutaj i tutaj.
Ups, no tak, a co z miejscem na dyskach?
File path = new File("/");
System.out.println("/: " + (path.getFreeSpace() / 1024 / 1024) + "/" + (path.getTotalSpace() / 1024 / 1024) + " MiB");
// /: 20248/28158 MiB
path = new File("/var");
System.out.println("/var: " + (path.getFreeSpace() / 1024 / 1024) + "/" + (path.getTotalSpace() / 1024 / 1024) + " MiB");
// /var: 7174/9852 MiB
path = new File("/home");
System.out.println("/home: " + (path.getFreeSpace() / 1024 / 1024) + "/" + (path.getTotalSpace() / 1024 / 1024) + " MiB");
// /home: 20183/56325 MiB
Jezeli /var i /home sa w roocie to dostaniemy wartosci z roota. W windowsie jest podobnie, z ta roznica, ze dyski identyfikujemy jako c:/, d:/.
brak komentarzy | tagi: Java, programowanie, system info | wpis w Java, Programowanie