Ένας από τους πιο ισχυρούς συνδυασμούς σε περιβάλλον εκτέλεσης
JVM, είναι αυτός που περιλαμβάνει το Oracle JRockit (και αντίστοιχα τον Weblogic Server), σε
λειτουργικό σύστημα Oracle Enterprise Linux (OEL), με την χρήση
των huge pages. O Oracle Unbreakable Kernel (OUK) διαθέτει ειδικά
χαρακτηριστικά για αυξημένη επεκτασιμότητα και απόδοση που
μπορούμε να εκμεταλλευτούμε (http://www.oracle.com/technetwork/articles/servers-storage-admin/uek-rel2-getting-started-1555632.html)
Από την άλλη, έχουμε το JRockit που είναι το ταχύτερο περιβάλλον
εκτέλεσης JVM σε πλατφόρμες Intel. Και τέλος, θα χρησιμοποιήσουμε
το χαρακτηριστικό του Linux kernel που επιτρέπει τον τεμαχισμό και
διαχείριση της μνήμης σε μεγαλύτερα κομμάτια (huge/large pages
--> http://lxr.linux.no/#linux+v3.4/Documentation/vm/hugetlbpage.txt) με το εκ των προτέρων κλείδωμα της.
Ξεκινάμε λοιπόν θεωρώντας πως υπάρχει υποστήριξη για huge pages (τρέχοντας την εντολή cat /proc/meminfo | grep -i huge θα το μάθουμε αυτό) Ορίζουμε αρχικά το επιδιωκόμενο μέγεθος μνήμης που θα καταληφθεί από τα huge pages και τον χρήστη που θα τα χρησιμοποιήσει. Ενδεικτικά, για μέγεθος μνήμης 8GB και μέγεθος σελίδας 2MB, ορίζουμε στο /etc/sysctl.conf:
vm.nr_hugepages=4096
έπειτα δηλώνουμε τον χρήστη που μπορεί να "κλειδώσει" αυτό το μέγεθος μνήμης στο /etc/security/limits.conf
weblogic soft memlock 8388608
weblogic hard memlock 8388608
Τέλος, δημιουργούμε ένα directory ώστε να γίνεται mount το σύστημα της μνήμης, γεγονός που απαιτείται για το request της μνήμης.
mkdir /mnt/hugepages
και προσθέτουμε την ακόλουθη γραμμή στο /etc/fstab:
nodev /mnt/hugepages hugetlbfs uid=weblogic,gid=weblogic,size=8G,defaults 0 0
Τέλος, στο startup script του Weblogic, προσθέτουμε τις κατάλληλες παραμέτρους για την εκκίνηση του JRockit.
-Χms4G -Xmx8G -XlargePages:exitOnFailure=true
Αν είναι επιτυχημένες οι ρυθμίσεις μας, ο Weblogic Server θα ξεκινήσει κανονικά, καταλαμβάνοντας χώρο από τα huge page
Ξεκινάμε λοιπόν θεωρώντας πως υπάρχει υποστήριξη για huge pages (τρέχοντας την εντολή cat /proc/meminfo | grep -i huge θα το μάθουμε αυτό) Ορίζουμε αρχικά το επιδιωκόμενο μέγεθος μνήμης που θα καταληφθεί από τα huge pages και τον χρήστη που θα τα χρησιμοποιήσει. Ενδεικτικά, για μέγεθος μνήμης 8GB και μέγεθος σελίδας 2MB, ορίζουμε στο /etc/sysctl.conf:
vm.nr_hugepages=4096
έπειτα δηλώνουμε τον χρήστη που μπορεί να "κλειδώσει" αυτό το μέγεθος μνήμης στο /etc/security/limits.conf
weblogic soft memlock 8388608
weblogic hard memlock 8388608
Τέλος, δημιουργούμε ένα directory ώστε να γίνεται mount το σύστημα της μνήμης, γεγονός που απαιτείται για το request της μνήμης.
mkdir /mnt/hugepages
και προσθέτουμε την ακόλουθη γραμμή στο /etc/fstab:
nodev /mnt/hugepages hugetlbfs uid=weblogic,gid=weblogic,size=8G,defaults 0 0
Τέλος, στο startup script του Weblogic, προσθέτουμε τις κατάλληλες παραμέτρους για την εκκίνηση του JRockit.
-Χms4G -Xmx8G -XlargePages:exitOnFailure=true
Αν είναι επιτυχημένες οι ρυθμίσεις μας, ο Weblogic Server θα ξεκινήσει κανονικά, καταλαμβάνοντας χώρο από τα huge page
No comments:
Post a Comment