Oct
3
2009
Jak juz jestem w temacie konfiguracji srodowisk programistycznych, to moze cos o kontenerze Tomcat (Jakarta), jako, ze jest najczesciej wykorzystywany do uruchamiania aplikacji webowych tworzonych w technologi Java Servlet i JSP.
1. Instalujemy Javke
czlowiek@maszyna:~$ sudo apt-get install sun-java6-jdk
2. Instalujemy Tomcat’a
czlowiek@maszyna:~$ sudo apt-get install tomcat6
3. Testujemy Tomcat’a
czlowiek@maszyna:~$ wget -q http://localhost:8080 -O /tmp/atest && cat /tmp/atest | grep -i "it works"
jak dostaniemy cos podobnego: <h1>It works !</h1> to serwer dziala.
4. Teraz instalujemy przykladowe aplikacje z repo
czlowiek@maszyna:~$ sudo apt-get install tomcat6-examples
czlowiek@maszyna:~$ sudo /etc/init.d/tomcat6 restart
i klikamy: http://localhost:8080/examples/.
5. Mozemy tez sciagnac przykladowa aplikacje i zainstalowac (skopiowac) ja recznie w domyslnym katalogu aplikacji webowych
czlowiek@maszyna:~$ wget http://tomcat.apache.org/tomcat-6.0-doc/appdev/sample/sample.war -O /tmp/sample.war && sudo cp /tmp/sample.war /var/lib/tomcat6/webapps/
po wklepaniu http://localhost:8080/sample/ w przegladarce powinnismy dostac cos takiego:

lub takiego: <h1>Sample “Hello, World” Application</h1> z konsoli:
czlowiek@maszyna:~$ wget -q http://localhost:8080/sample/ -O /tmp/atest && cat /tmp/atest | grep -i "h1"
To tyle w skrocie na temat konfiguracji Apache-Tomcat na Ubuntu. Jednakze zapraszam na strone glowna projektu Tomcat.
1 komentarz | tagi: apache, klient-server, Konfiguracja, programowanie, Programy, tomcat | wpis w Java, Konfiguracja, Linux, Programowanie, Programy, Web
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