Pertanyaan pertama, Kenapa sih kita harus run multiple instance?
Alasan pertama, Jika applikasi yang kita buat merupakan applikasi yang berbeda dan independence. Contohnya kita memiliki applikasi yang namanya Content Management System dan applikasi yang kedua adalah applikasi sms. Bayangkan jika mereka dalam instance yang sama. Jika ada perubahan applikasi dan perlu untuk di restart. Maka salah satu applikasi yang seharusnya tidak mati, malah ikutan mati. Kalau bahasa mudahnya easy to maintaince.
Alasan yang kedua, Jika kita ingin melakukan management memory pada tiap-tiap applikasi. Jika dalam satu instance kita kurang tau tiap-tiap applikasi memakan berapa banyak memory. Dengan adanya pemisahan instance, kita dapat mengetahui applikasi yang mana yang telah memakan memory yang banyak di server kita. Berikut tampilanya
[takmgr@localhost bin]$ top top - 16:20:31 up 17:06, 5 users, load average: 0.20, 0.11, 0.07 Tasks: 87 total, 1 running, 86 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 1.3 sy, 0.0 ni, 94.5 id, 1.6 wa, 1.0 hi, 1.6 si, 0.0 st KiB Mem : 1529248 total, 78936 free, 330540 used, 1119772 buff/cache KiB Swap: 2326524 total, 2325620 free, 904 used. 1164836 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 32146 root 20 0 15720 8508 7500 S 0.3 0.6 0:01.14 sshd 32274 takmgr 20 0 404080 152832 9304 S 0.3 10.0 0:11.94 java 32385 takmgr 20 0 404240 152820 9276 S 0.3 10.0 0:12.50 java 32430 takmgr 20 0 8768 3564 3120 R 0.3 0.2 0:00.06 top 1 root 20 0 8308 6432 3792 S 0.0 0.4 0:09.61 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:17.93 ksoftirqd/0 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 7 root 20 0 0 0 0 S 0.0 0.0 0:13.75 rcu_sched 8 root 20 0 0 0 0 S 0.0 0.0 0:08.18 rcuos/0 9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh 10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcuob/0 [takmgr@localhost bin]$ ps aux | grep tomcat takmgr 32274 2.9 9.9 404080 152832 pts/3 Sl 16:14 0:12 /usr/local/src/jdk1.7.0_79/bin/java -Djava.util.logging.config.file=/opt/sendmail-app/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xmx256m -Xms100m -Djava.endorsed.dirs=/opt/apache-tomcat-7.0.65-master/endorsed -classpath /opt/apache-tomcat-7.0.65-master/bin/bootstrap.jar:/opt/sendmail-app/bin/tomcat-juli.jar -Dcatalina.base=/opt/sendmail-app -Dcatalina.home=/opt/apache-tomcat-7.0.65-master -Djava.io.tmpdir=/opt/sendmail-app/temp org.apache.catalina.startup.Bootstrap start takmgr 32385 17.7 9.9 404240 152820 pts/3 Sl 16:19 0:12 /usr/local/src/jdk1.7.0_79/bin/java -Djava.util.logging.config.file=/opt/mail-app/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xmx256m -Xms100m -Djava.endorsed.dirs=/opt/apache-tomcat-7.0.65-master/endorsed -classpath /opt/apache-tomcat-7.0.65-master/bin/bootstrap.jar:/opt/mail-app/bin/tomcat-juli.jar -Dcatalina.base=/opt/mail-app -Dcatalina.home=/opt/apache-tomcat-7.0.65-master -Djava.io.tmpdir=/opt/mail-app/temp org.apache.catalina.startup.Bootstrap start takmgr 32432 0.0 0.1 6300 2128 pts/3 S+ 16:21 0:00 grep --color=auto tomcatBaris yang dicetak tebal itu merupakan bagian memory.
Sedikit bocoran saja sebenarnya dalam melakukan pemisahan instance ini seperti halnya kita melakukan copy paste apache tomcat menjadi jumlah yang kita ingin tentukan(instance). Jadi sebelum kita melakukan peng-copyan alangkah lebih baiknya kita mengetahui isi dalam folder apache tomcat tersebut
Structure Directory Apache Tomcat bin: Merupakan directory untuk mengeksekusi perintah start dan stop
conf: Merupakan directory untuk melakukan configurasi pada sisi tomcat instance-nya
webapps: Merupakan directory untuk deploy dan expand applikasi
work: Merupakan directory dari applikasi yang telah dicompile. sehingga kita bisa lihat dalamnya dari applikasi kita
logs: Merupakan kumpulan dari log-log si tomcat
lib: Merupakan directory kumpulan dari library-library yang dibutuhkan oleh tomcat/applikasi kita
temp: Merupakan directory yang digunakan untuk menyimpan data temporary
0 comments:
Posting Komentar