{"id":280,"date":"2009-04-05T01:29:47","date_gmt":"2009-04-04T17:29:47","guid":{"rendered":"http:\/\/blog.lolyco.com\/sean\/?p=280"},"modified":"2009-04-21T11:09:27","modified_gmt":"2009-04-21T03:09:27","slug":"64-bit-java-on-slamd64-64-bit-slackware","status":"publish","type":"post","link":"https:\/\/blog.lolyco.com\/sean\/2009\/04\/05\/64-bit-java-on-slamd64-64-bit-slackware\/","title":{"rendered":"64 bit Java on slamd64 (64 bit slackware)"},"content":{"rendered":"<div id=\"attachment_281\" style=\"width: 290px\" class=\"wp-caption alignright\"><a href=\"http:\/\/www.slamd64.com\/\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-281\" class=\"size-full wp-image-281\" title=\"slamd64\" src=\"http:\/\/blog.lolyco.com\/sean\/wp-content\/uploads\/2009\/04\/slamd64.png\" alt=\"slamd64\" width=\"280\" height=\"53\" \/><\/a><p id=\"caption-attachment-281\" class=\"wp-caption-text\">slamd64 - 64bit Slackware<\/p><\/div>\n<p><a title=\"slamd64 - 64 bit Slackware\" href=\"http:\/\/www.slamd64.com\/\">slamd64<\/a> is Fred Emmott&#8217;s 64bit <a title=\"Slackware Linux\" href=\"http:\/\/slackware.com\/\">Slackware<\/a> project. I installed it on a couple of servers that provide the bulk of the processing power behind spider.my recently. Just like installing Slackware, installing slamd64 on a server is a matter of downloading the first CD ISO in the set, and following the instructions.<\/p>\n<p>The only real difference I noticed is the startup splash screen. I&#8217;m only ever going to see that once, as I never connect monitors to my servers unless they&#8217;re broken. I thought the splash screen was a nice touch. I use Slackware because I have conservative tastes in server software, but I think I&#8217;d have been disappointed if I&#8217;d had to use uname to tell I was using the new distro!<\/p>\n<p>For those who won&#8217;t believe a thing until they see the screenshots, I&#8217;m not going to disappoint you -here&#8217;s the output from uname in an xterm on one of the servers running slamd64. See the &#8216;x86_64&#8217;? That&#8217;s what you get for buying extra RAM and installing a 64bit operating system. The SC440 I have still running Slackware reports &#8216;i686&#8217; for the machine hardware name.<\/p>\n<div id=\"attachment_284\" style=\"width: 445px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blog.lolyco.com\/sean\/wp-content\/uploads\/2009\/04\/slamd64_uname.jpeg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-284\" class=\"size-full wp-image-284\" title=\"slamd64 uname output\" src=\"http:\/\/blog.lolyco.com\/sean\/wp-content\/uploads\/2009\/04\/slamd64_uname.jpeg\" alt=\"slamd64 uname output\" width=\"435\" height=\"49\" srcset=\"https:\/\/blog.lolyco.com\/sean\/wp-content\/uploads\/2009\/04\/slamd64_uname.jpeg 435w, https:\/\/blog.lolyco.com\/sean\/wp-content\/uploads\/2009\/04\/slamd64_uname-300x33.jpg 300w\" sizes=\"auto, (max-width: 435px) 100vw, 435px\" \/><\/a><p id=\"caption-attachment-284\" class=\"wp-caption-text\">slamd64 uname output<\/p><\/div>\n<p>Just in case you think a picture of an xterm doesn&#8217;t count as a screenshot, here&#8217;s that startup splash screen &#8211; nice huh?<\/p>\n<div id=\"attachment_282\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blog.lolyco.com\/sean\/wp-content\/uploads\/2009\/04\/slamd64.jpeg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-282\" class=\"size-medium wp-image-282\" title=\"slamd64 boot screen\" src=\"http:\/\/blog.lolyco.com\/sean\/wp-content\/uploads\/2009\/04\/slamd64-300x225.jpg\" alt=\"slamd64 boot screen\" width=\"300\" height=\"225\" srcset=\"https:\/\/blog.lolyco.com\/sean\/wp-content\/uploads\/2009\/04\/slamd64-300x225.jpg 300w, https:\/\/blog.lolyco.com\/sean\/wp-content\/uploads\/2009\/04\/slamd64.jpeg 640w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-282\" class=\"wp-caption-text\">slamd64 boot screen<\/p><\/div>\n<p>More screenshots later, keep salivating! The servers I installed slamd64 on are <a title=\"Dell PowerEdge SC440 - upto 8GB RAM!\" href=\"http:\/\/www1.ap.dell.com\/content\/products\/productdetails.aspx\/pedge_sc440?c=my&amp;cs=mybsd1&amp;l=en&amp;s=bsd\">Dell PowerEdge SC440 (yes, they really do work with 8GB of RAM!)<\/a>. They&#8217;re not the most powerful servers ever, but they are cheap, quiet and use very little power. I&#8217;ve just increased the RAM on two of them to 8GB and 6GB (rather than throw away the old memory), so I had to change my linux kernel to use the RAM beyond the 4GB \/ 32bit limit. I didn&#8217;t consider building a PAE kernel for long &#8211; it just seems too &#8216;clunky&#8217;.<\/p>\n<p>It all seemed too easy. I couldn&#8217;t wait to get my Java applications started to take advantage of the extra memory. It&#8217;s not so much that I want to go &#8216;bloated&#8217;, more that I&#8217;m running out of spare capacity to start new instances of my application while I&#8217;m developing. I was pleased to see that a slamd64 first-CD only install includes the 64bit JRE, so I could just copy my application onto the upgraded servers and start it.<\/p>\n<p>I actually installed slamd64 before fitting the extra memory, so I was a bit upset to see my Java application being killed by the OOM (Out Of Memory) killer, but pleased to see it reported briefly at 1.9g by &#8216;top&#8217;on a 2GB system! Before I installed slamd64, the most I ever saw top report was 1.7g for a java process, before the inevitable OutOfMemoryError.<\/p>\n<p>After I installed the 8GB, I ran the application again with the 64bit JVM and got a shock! You can see from the top output that my application is using nearly 3 times the memory (3.7g in the picture)\u00a0 it does when run with the 32bit (1.7g, running concurrently in the top output) JVM! My application is a mixture of unchanging Hashtables and arrays, so perhaps I&#8217;ve managed to produce a worst-case 64bit example. I didn&#8217;t intend to!<\/p>\n<p style=\"text-align: center;\">\n<div id=\"attachment_289\" style=\"width: 489px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blog.lolyco.com\/sean\/wp-content\/uploads\/2009\/04\/slamd64javatop.jpeg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-289\" class=\"size-full wp-image-289\" title=\"slamd64javatop\" src=\"http:\/\/blog.lolyco.com\/sean\/wp-content\/uploads\/2009\/04\/slamd64javatop.jpeg\" alt=\"slamd64 java processes in top\" width=\"479\" height=\"124\" srcset=\"https:\/\/blog.lolyco.com\/sean\/wp-content\/uploads\/2009\/04\/slamd64javatop.jpeg 479w, https:\/\/blog.lolyco.com\/sean\/wp-content\/uploads\/2009\/04\/slamd64javatop-300x77.jpg 300w\" sizes=\"auto, (max-width: 479px) 100vw, 479px\" \/><\/a><p id=\"caption-attachment-289\" class=\"wp-caption-text\">slamd64 java processes in top (first row is 32bit JVM, below is 64bit JVM, same application)<\/p><\/div>\n<p>The good news is, I can run the 32bit application under slamd64 and enjoy a larger heap. I can start the 32 bit JVM with maximum heap size up to &#8216;java -Xmx3700M&#8217;. A simple array-of-big-strings test program runs to 3.6GB reported by top before it runs out of heap.<\/p>\n<p>I&#8217;ve obviously got some work to do before I fully expoit the potential of the 64 bit JVM. The good news is I can keep running the 32 bit JVM under slamd64, and get access to an extra 2GB of RAM that way. The bad news is, it appears as though the 32-bit JVM can only run in the bottom 4GB of RAM (but you knew that, didn&#8217;t you?). To use all 8GB with a 32-bit JVM would require either PAE, or running the JVMs inside Virtual Machines such as VirtualBox.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>slamd64 is Fred Emmott&#8217;s 64bit Slackware project. I installed it on a couple of servers that provide the bulk of the processing power behind spider.my recently. Just like installing Slackware, installing slamd64 on a server is a matter of downloading the first CD ISO in the set, and following the instructions. The only real difference [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20,31,35],"tags":[110,33,9,18,22],"class_list":["post-280","post","type-post","status-publish","format-standard","hentry","category-fixed","category-hardware","category-spidermy","tag-hardware","tag-java","tag-open-source","tag-server","tag-slackware"],"_links":{"self":[{"href":"https:\/\/blog.lolyco.com\/sean\/wp-json\/wp\/v2\/posts\/280","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.lolyco.com\/sean\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.lolyco.com\/sean\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.lolyco.com\/sean\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.lolyco.com\/sean\/wp-json\/wp\/v2\/comments?post=280"}],"version-history":[{"count":12,"href":"https:\/\/blog.lolyco.com\/sean\/wp-json\/wp\/v2\/posts\/280\/revisions"}],"predecessor-version":[{"id":296,"href":"https:\/\/blog.lolyco.com\/sean\/wp-json\/wp\/v2\/posts\/280\/revisions\/296"}],"wp:attachment":[{"href":"https:\/\/blog.lolyco.com\/sean\/wp-json\/wp\/v2\/media?parent=280"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.lolyco.com\/sean\/wp-json\/wp\/v2\/categories?post=280"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.lolyco.com\/sean\/wp-json\/wp\/v2\/tags?post=280"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}