IBM Product Compatibility Reports v1.0 (Clarity)

This super-helpful system is buried in the IBM site and after the acquisition of another product names Clarity is pretty much lost to all search engines, including the embedded one on ibm.com.

The Software product Compatibility Reports v1.0 (Clarity) site provides a wealth of helpful information and is built on the most current information possible to provide the world with an easier way to understand how these products *should* fit together.

Try it out and see how deep the rabbit hole goes as this is a wealth of information.

Increase IE concurrent connections = increase performance, well for Jazz it does

Unfortunately the Internet Explorer default settings are not very friendly to AJAX heavy applications.

Microsoft provides a Knowledge Base article with the exact settings for IE 7 & 8, the instructions for IE 9 are the same for 8.

http://support.microsoft.com/kb/282402

Checking FireFox looks like their default settings in version 9 are 15, so I would recommend starting with 10 or 15 but don’t go too much higher without a good reason :)

What is the largest max heapsize for a 64 bit IBM JVM?

Looking for something like a technote I found for 32 bit Windows [1]. But I was hoping for a more generic answer that I could reference to clients at when I offer WAS JVM settings to give them a sigh of relief that I am in fact not crazy. So I started poking through the IBM JVM docs and found this [2] stating the upper limit is 16 exabytes and FYI google tells me [3] that is a lot.

1 EB = 1000000000000000000B = 1018 bytes = 1073741824 gigabytes = 1048576 terabytes [4]

1EB x 16 = 1,073,741,824 GB

With that said, my recommendation for a 8-16 GB JVM max heap size recommendation doesn’t even sound like that much. But still have a bit more digging to get my head around some actual tuning and monitoring of the JVM for WebSphere

Footnotes    (↵ returns to text)
  1. ibm.com: What is the largest maximum Java heap size (Xmx) allowed on Windows platform? – https://www-304.ibm.com/support/docview.wss?uid=swg21249894
  2. ibm.com: IBM SDK Information Center – Analyzing process memory for exhaustion – http://publib.boulder.ibm.com/infocenter/javasdk/tools/index.jsp?topic=%2Fcom.ibm.java.doc.igaa%2F_1vg000121410cbe-1195c23a635-7fff_1001.html
  3. google.com search result- https://www.google.com/search?gcx=w&sourceid=chrome&ie=UTF-8&q=16+exabytes+to+gigabytes
  4. wikipedia.com – Exabyte – http://en.wikipedia.org/wiki/Exabyte

CentOS 6 install the 32 bit compat libs for IBM stuff

Based on this technote, http://www-01.ibm.com/support/docview.wss?uid=swg21459143 , I was expecting this type of output.

[root@zahar-rhel64 IMinstallKit]# ./install
bash: ./install: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

But in actuality when using CentOS 6 versus RHEL 6, it comes out a bit different, but ultimately the recommendation from IBM is valid, below is my sample output from a freshly installed machine, hence the laundry list of dependencies that I needed to get to make this work.

[sgw@cecil 1.5-linux]$ sudo ./install
sudo: unable to execute ./install: No such file or directory
[sgw@cecil 1.5-linux]$ file ./install
./install: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.2.5, not stripped
[sgw@cecil 1.5-linux]$ sudo yum install -y gtk2.i686 libXtst.i686
Loaded plugins: fastestmirror, refresh-packagekit
Loading mirror speeds from cached hostfile
 * base: mirrors.greenmountainaccess.net
 * extras: centos.vipernetworksystems.com
 * updates: centos.vipernetworksystems.com
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package gtk2.i686 0:2.18.9-4.el6 set to be updated
--> Processing Dependency: libc.so.6(GLIBC_2.3.4) for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libc.so.6(GLIBC_2.1) for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libXi.so.6 for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libcups.so.2 for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libpangocairo-1.0.so.0 for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libpng12.so.0(PNG12_0) for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libc.so.6(GLIBC_2.0) for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libXfixes.so.3 for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libc.so.6(GLIBC_2.7) for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libpangoft2-1.0.so.0 for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libc.so.6(GLIBC_2.11) for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libm.so.6(GLIBC_2.1) for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libtiff.so.3 for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libpango-1.0.so.0 for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libXinerama.so.1 for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libgmodule-2.0.so.0 for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libc.so.6(GLIBC_2.3.3) for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libXrandr.so.2 for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libc.so.6(GLIBC_2.4) for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libXrender.so.1 for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libm.so.6(GLIBC_2.0) for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libc.so.6(GLIBC_2.3) for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libXcursor.so.1 for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libXcomposite.so.1 for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libjpeg.so.62 for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libc.so.6(GLIBC_2.1.3) for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libXdamage.so.1 for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libcairo.so.2 for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libfontconfig.so.1 for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libatk-1.0.so.0 for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libm.so.6 for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libX11.so.6 for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libc.so.6(GLIBC_2.2) for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libglib-2.0.so.0 for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libpthread.so.0(GLIBC_2.0) for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libc.so.6 for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libpng12.so.0 for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libXext.so.6 for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libfreetype.so.6 for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libgio-2.0.so.0 for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libpthread.so.0 for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libgobject-2.0.so.0 for package: gtk2-2.18.9-4.el6.i686
--> Processing Dependency: libjasper.so.1 for package: gtk2-2.18.9-4.el6.i686
---> Package libXtst.i686 0:1.0.99.2-3.el6 set to be updated
--> Running transaction check
---> Package atk.i686 0:1.28.0-2.el6 set to be updated
---> Package cairo.i686 0:1.8.8-3.1.el6 set to be updated
--> Processing Dependency: libpixman-1.so.0 for package: cairo-1.8.8-3.1.el6.i686
--> Processing Dependency: libz.so.1 for package: cairo-1.8.8-3.1.el6.i686
---> Package cups-libs.i686 1:1.4.2-35.el6_0.1 set to be updated
--> Processing Dependency: libk5crypto.so.3 for package: 1:cups-libs-1.4.2-35.el6_0.1.i686
--> Processing Dependency: libcom_err.so.2 for package: 1:cups-libs-1.4.2-35.el6_0.1.i686
--> Processing Dependency: libavahi-client.so.3 for package: 1:cups-libs-1.4.2-35.el6_0.1.i686
--> Processing Dependency: libgcc_s.so.1 for package: 1:cups-libs-1.4.2-35.el6_0.1.i686
--> Processing Dependency: libstdc++.so.6(CXXABI_1.3) for package: 1:cups-libs-1.4.2-35.el6_0.1.i686
--> Processing Dependency: libstdc++.so.6 for package: 1:cups-libs-1.4.2-35.el6_0.1.i686
--> Processing Dependency: libkrb5.so.3 for package: 1:cups-libs-1.4.2-35.el6_0.1.i686
--> Processing Dependency: libgnutls.so.26 for package: 1:cups-libs-1.4.2-35.el6_0.1.i686
--> Processing Dependency: libgnutls.so.26(GNUTLS_1_4) for package: 1:cups-libs-1.4.2-35.el6_0.1.i686
--> Processing Dependency: libgssapi_krb5.so.2 for package: 1:cups-libs-1.4.2-35.el6_0.1.i686
--> Processing Dependency: libavahi-common.so.3 for package: 1:cups-libs-1.4.2-35.el6_0.1.i686
--> Processing Dependency: libstdc++.so.6(GLIBCXX_3.4) for package: 1:cups-libs-1.4.2-35.el6_0.1.i686
--> Processing Dependency: libaudit.so.1 for package: 1:cups-libs-1.4.2-35.el6_0.1.i686
--> Processing Dependency: libgcc_s.so.1(GCC_3.0) for package: 1:cups-libs-1.4.2-35.el6_0.1.i686
--> Processing Dependency: libselinux.so.1 for package: 1:cups-libs-1.4.2-35.el6_0.1.i686
--> Processing Dependency: libgssapi_krb5.so.2(gssapi_krb5_2_MIT) for package: 1:cups-libs-1.4.2-35.el6_0.1.i686
---> Package fontconfig.i686 0:2.8.0-3.el6 set to be updated
--> Processing Dependency: libexpat.so.1 for package: fontconfig-2.8.0-3.el6.i686
---> Package freetype.i686 0:2.3.11-6.el6_0.2 set to be updated
---> Package glib2.i686 0:2.22.5-5.el6 set to be updated
--> Processing Dependency: libfam.so.0 for package: glib2-2.22.5-5.el6.i686
---> Package glibc.i686 0:2.12-1.7.el6_0.5 set to be updated
--> Processing Dependency: libfreebl3.so(NSSRAWHASH_3.12.3) for package: glibc-2.12-1.7.el6_0.5.i686
--> Processing Dependency: libfreebl3.so for package: glibc-2.12-1.7.el6_0.5.i686
---> Package jasper-libs.i686 0:1.900.1-15.el6 set to be updated
---> Package libX11.i686 0:1.3-2.el6 set to be updated
--> Processing Dependency: libxcb.so.1 for package: libX11-1.3-2.el6.i686
---> Package libXcomposite.i686 0:0.4.1-2.el6 set to be updated
---> Package libXcursor.i686 0:1.1.10-2.el6 set to be updated
---> Package libXdamage.i686 0:1.1.2-1.el6 set to be updated
---> Package libXext.i686 0:1.1-3.el6 set to be updated
---> Package libXfixes.i686 0:4.0.4-1.el6 set to be updated
---> Package libXi.i686 0:1.3-3.el6 set to be updated
---> Package libXinerama.i686 0:1.1-1.el6 set to be updated
---> Package libXrandr.i686 0:1.3.0-4.el6 set to be updated
---> Package libXrender.i686 0:0.9.5-1.el6 set to be updated
---> Package libjpeg.i686 0:6b-46.el6 set to be updated
---> Package libpng.i686 2:1.2.44-1.el6 set to be updated
---> Package libtiff.i686 0:3.9.4-1.el6_0.3 set to be updated
---> Package pango.i686 0:1.28.1-3.el6_0.5 set to be updated
--> Processing Dependency: libthai.so.0(LIBTHAI_0.1) for package: pango-1.28.1-3.el6_0.5.i686
--> Processing Dependency: libXft.so.2 for package: pango-1.28.1-3.el6_0.5.i686
--> Processing Dependency: libthai.so.0 for package: pango-1.28.1-3.el6_0.5.i686
--> Running transaction check
---> Package audit-libs.i686 0:2.0.4-1.el6 set to be updated
---> Package avahi-libs.i686 0:0.6.25-8.el6 set to be updated
--> Processing Dependency: libdbus-1.so.3 for package: avahi-libs-0.6.25-8.el6.i686
---> Package expat.i686 0:2.0.1-9.1.el6 set to be updated
---> Package gamin.i686 0:0.1.10-9.el6 set to be updated
---> Package gnutls.i686 0:2.8.5-4.el6 set to be updated
--> Processing Dependency: libtasn1.so.3(LIBTASN1_0_3) for package: gnutls-2.8.5-4.el6.i686
--> Processing Dependency: libgcrypt.so.11 for package: gnutls-2.8.5-4.el6.i686
--> Processing Dependency: libtasn1.so.3 for package: gnutls-2.8.5-4.el6.i686
--> Processing Dependency: libgcrypt.so.11(GCRYPT_1.2) for package: gnutls-2.8.5-4.el6.i686
---> Package krb5-libs.i686 0:1.8.2-3.el6_0.7 set to be updated
--> Processing Dependency: libkeyutils.so.1(KEYUTILS_0.3) for package: krb5-libs-1.8.2-3.el6_0.7.i686
--> Processing Dependency: libkeyutils.so.1 for package: krb5-libs-1.8.2-3.el6_0.7.i686
---> Package libXft.i686 0:2.1.13-4.1.el6 set to be updated
---> Package libcom_err.i686 0:1.41.12-3.el6 set to be updated
---> Package libgcc.i686 0:4.4.4-13.el6 set to be updated
---> Package libselinux.i686 0:2.0.94-2.el6 set to be updated
---> Package libstdc++.i686 0:4.4.4-13.el6 set to be updated
---> Package libthai.i686 0:0.1.12-3.el6 set to be updated
---> Package libxcb.i686 0:1.5-1.el6 set to be updated
--> Processing Dependency: libXau.so.6 for package: libxcb-1.5-1.el6.i686
---> Package nss-softokn-freebl.i686 0:3.12.8-1.el6_0 set to be updated
---> Package pixman.i686 0:0.18.4-1.el6_0.1 set to be updated
---> Package zlib.i686 0:1.2.3-25.el6 set to be updated
--> Running transaction check
---> Package dbus-libs.i686 1:1.2.24-4.el6_0 set to be updated
---> Package keyutils-libs.i686 0:1.4-1.el6 set to be updated
---> Package libXau.i686 0:1.0.5-1.el6 set to be updated
---> Package libgcrypt.i686 0:1.4.5-3.el6 set to be updated
--> Processing Dependency: libgpg-error.so.0 for package: libgcrypt-1.4.5-3.el6.i686
---> Package libtasn1.i686 0:2.3-3.el6 set to be updated
--> Running transaction check
---> Package libgpg-error.i686 0:1.7-3.el6 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

=====================================================================================================================================================
 Package                                  Arch                       Version                                     Repository                     Size
=====================================================================================================================================================
Installing:
 gtk2                                     i686                       2.18.9-4.el6                                base                          3.2 M
 libXtst                                  i686                       1.0.99.2-3.el6                              base                           22 k
Installing for dependencies:
 atk                                      i686                       1.28.0-2.el6                                base                          190 k
 audit-libs                               i686                       2.0.4-1.el6                                 base                           56 k
 avahi-libs                               i686                       0.6.25-8.el6                                base                           46 k
 cairo                                    i686                       1.8.8-3.1.el6                               base                          319 k
 cups-libs                                i686                       1:1.4.2-35.el6_0.1                          updates                       322 k
 dbus-libs                                i686                       1:1.2.24-4.el6_0                            updates                       128 k
 expat                                    i686                       2.0.1-9.1.el6                               base                           78 k
 fontconfig                               i686                       2.8.0-3.el6                                 base                          186 k
 freetype                                 i686                       2.3.11-6.el6_0.2                            updates                       362 k
 gamin                                    i686                       0.1.10-9.el6                                base                          120 k
 glib2                                    i686                       2.22.5-5.el6                                base                          1.1 M
 glibc                                    i686                       2.12-1.7.el6_0.5                            updates                       4.3 M
 gnutls                                   i686                       2.8.5-4.el6                                 base                          336 k
 jasper-libs                              i686                       1.900.1-15.el6                              base                          137 k
 keyutils-libs                            i686                       1.4-1.el6                                   base                           20 k
 krb5-libs                                i686                       1.8.2-3.el6_0.7                             updates                       690 k
 libX11                                   i686                       1.3-2.el6                                   base                          585 k
 libXau                                   i686                       1.0.5-1.el6                                 base                           22 k
 libXcomposite                            i686                       0.4.1-2.el6                                 base                           17 k
 libXcursor                               i686                       1.1.10-2.el6                                base                           32 k
 libXdamage                               i686                       1.1.2-1.el6                                 base                           16 k
 libXext                                  i686                       1.1-3.el6                                   base                           33 k
 libXfixes                                i686                       4.0.4-1.el6                                 base                           19 k
 libXft                                   i686                       2.1.13-4.1.el6                              base                           48 k
 libXi                                    i686                       1.3-3.el6                                   base                           32 k
 libXinerama                              i686                       1.1-1.el6                                   base                           15 k
 libXrandr                                i686                       1.3.0-4.el6                                 base                           29 k
 libXrender                               i686                       0.9.5-1.el6                                 base                           26 k
 libcom_err                               i686                       1.41.12-3.el6                               base                           34 k
 libgcc                                   i686                       4.4.4-13.el6                                base                          104 k
 libgcrypt                                i686                       1.4.5-3.el6                                 base                          227 k
 libgpg-error                             i686                       1.7-3.el6                                   base                           59 k
 libjpeg                                  i686                       6b-46.el6                                   base                          133 k
 libpng                                   i686                       2:1.2.44-1.el6                              base                          183 k
 libselinux                               i686                       2.0.94-2.el6                                base                          106 k
 libstdc++                                i686                       4.4.4-13.el6                                base                          291 k
 libtasn1                                 i686                       2.3-3.el6                                   base                          239 k
 libthai                                  i686                       0.1.12-3.el6                                base                          183 k
 libtiff                                  i686                       3.9.4-1.el6_0.3                             updates                       338 k
 libxcb                                   i686                       1.5-1.el6                                   base                          104 k
 nss-softokn-freebl                       i686                       3.12.8-1.el6_0                              updates                       109 k
 pango                                    i686                       1.28.1-3.el6_0.5                            updates                       350 k
 pixman                                   i686                       0.18.4-1.el6_0.1                            updates                       154 k
 zlib                                     i686                       1.2.3-25.el6                                base                           72 k

Transaction Summary
=====================================================================================================================================================
Install      46 Package(s)
Upgrade       0 Package(s)

Total download size: 15 M
Installed size: 47 M
Downloading Packages:
(1/46): atk-1.28.0-2.el6.i686.rpm                                                                                             | 190 kB     00:00
(2/46): audit-libs-2.0.4-1.el6.i686.rpm                                                                                       |  56 kB     00:00
(3/46): avahi-libs-0.6.25-8.el6.i686.rpm                                                                                      |  46 kB     00:00
(4/46): cairo-1.8.8-3.1.el6.i686.rpm                                                                                          | 319 kB     00:00
(5/46): cups-libs-1.4.2-35.el6_0.1.i686.rpm                                                                                   | 322 kB     00:00
(6/46): dbus-libs-1.2.24-4.el6_0.i686.rpm                                                                                     | 128 kB     00:00
(7/46): expat-2.0.1-9.1.el6.i686.rpm                                                                                          |  78 kB     00:00
(8/46): fontconfig-2.8.0-3.el6.i686.rpm                                                                                       | 186 kB     00:00
(9/46): freetype-2.3.11-6.el6_0.2.i686.rpm                                                                                    | 362 kB     00:00
(10/46): gamin-0.1.10-9.el6.i686.rpm                                                                                          | 120 kB     00:00
(11/46): glib2-2.22.5-5.el6.i686.rpm                                                                                          | 1.1 MB     00:01
(12/46): glibc-2.12-1.7.el6_0.5.i686.rpm                                                                                      | 4.3 MB     00:03
(13/46): gnutls-2.8.5-4.el6.i686.rpm                                                                                          | 336 kB     00:00
(14/46): gtk2-2.18.9-4.el6.i686.rpm                                                                                           | 3.2 MB     00:02
(15/46): jasper-libs-1.900.1-15.el6.i686.rpm                                                                                  | 137 kB     00:00
(16/46): keyutils-libs-1.4-1.el6.i686.rpm                                                                                     |  20 kB     00:00
(17/46): krb5-libs-1.8.2-3.el6_0.7.i686.rpm                                                                                   | 690 kB     00:01
(18/46): libX11-1.3-2.el6.i686.rpm                                                                                            | 585 kB     00:01
(19/46): libXau-1.0.5-1.el6.i686.rpm                                                                                          |  22 kB     00:00
(20/46): libXcomposite-0.4.1-2.el6.i686.rpm                                                                                   |  17 kB     00:00
(21/46): libXcursor-1.1.10-2.el6.i686.rpm                                                                                     |  32 kB     00:00
(22/46): libXdamage-1.1.2-1.el6.i686.rpm                                                                                      |  16 kB     00:00
(23/46): libXext-1.1-3.el6.i686.rpm                                                                                           |  33 kB     00:00
(24/46): libXfixes-4.0.4-1.el6.i686.rpm                                                                                       |  19 kB     00:00
(25/46): libXft-2.1.13-4.1.el6.i686.rpm                                                                                       |  48 kB     00:00
(26/46): libXi-1.3-3.el6.i686.rpm                                                                                             |  32 kB     00:00
(27/46): libXinerama-1.1-1.el6.i686.rpm                                                                                       |  15 kB     00:00
(28/46): libXrandr-1.3.0-4.el6.i686.rpm                                                                                       |  29 kB     00:00
(29/46): libXrender-0.9.5-1.el6.i686.rpm                                                                                      |  26 kB     00:00
(30/46): libXtst-1.0.99.2-3.el6.i686.rpm                                                                                      |  22 kB     00:00
(31/46): libcom_err-1.41.12-3.el6.i686.rpm                                                                                    |  34 kB     00:00
(32/46): libgcc-4.4.4-13.el6.i686.rpm                                                                                         | 104 kB     00:00
(33/46): libgcrypt-1.4.5-3.el6.i686.rpm                                                                                       | 227 kB     00:00
(34/46): libgpg-error-1.7-3.el6.i686.rpm                                                                                      |  59 kB     00:00
(35/46): libjpeg-6b-46.el6.i686.rpm                                                                                           | 133 kB     00:00
(36/46): libpng-1.2.44-1.el6.i686.rpm                                                                                         | 183 kB     00:00
(37/46): libselinux-2.0.94-2.el6.i686.rpm                                                                                     | 106 kB     00:00
(38/46): libstdc++-4.4.4-13.el6.i686.rpm                                                                                      | 291 kB     00:00
(39/46): libtasn1-2.3-3.el6.i686.rpm                                                                                          | 239 kB     00:00
(40/46): libthai-0.1.12-3.el6.i686.rpm                                                                                        | 183 kB     00:00
(41/46): libtiff-3.9.4-1.el6_0.3.i686.rpm                                                                                     | 338 kB     00:00
(42/46): libxcb-1.5-1.el6.i686.rpm                                                                                            | 104 kB     00:00
(43/46): nss-softokn-freebl-3.12.8-1.el6_0.i686.rpm                                                                           | 109 kB     00:00
(44/46): pango-1.28.1-3.el6_0.5.i686.rpm                                                                                      | 350 kB     00:00
(45/46): pixman-0.18.4-1.el6_0.1.i686.rpm                                                                                     | 154 kB     00:00
(46/46): zlib-1.2.3-25.el6.i686.rpm                                                                                           |  72 kB     00:00
-----------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                565 kB/s |  15 MB     00:27
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : libgcc-4.4.4-13.el6.i686                                                                                                     1/46
  Installing     : nss-softokn-freebl-3.12.8-1.el6_0.i686                                                                                       2/46
  Installing     : glibc-2.12-1.7.el6_0.5.i686                                                                                                  3/46
  Installing     : zlib-1.2.3-25.el6.i686                                                                                                       4/46
  Installing     : freetype-2.3.11-6.el6_0.2.i686                                                                                               5/46
  Installing     : libjpeg-6b-46.el6.i686                                                                                                       6/46
  Installing     : 2:libpng-1.2.44-1.el6.i686                                                                                                   7/46
  Installing     : libselinux-2.0.94-2.el6.i686                                                                                                 8/46
  Installing     : gamin-0.1.10-9.el6.i686                                                                                                      9/46
  Installing     : glib2-2.22.5-5.el6.i686                                                                                                     10/46
  Installing     : libstdc++-4.4.4-13.el6.i686                                                                                                 11/46
  Installing     : libtiff-3.9.4-1.el6_0.3.i686                                                                                                12/46
  Installing     : libcom_err-1.41.12-3.el6.i686                                                                                               13/46
  Installing     : atk-1.28.0-2.el6.i686                                                                                                       14/46
  Installing     : jasper-libs-1.900.1-15.el6.i686                                                                                             15/46
  Installing     : libXau-1.0.5-1.el6.i686                                                                                                     16/46
  Installing     : libxcb-1.5-1.el6.i686                                                                                                       17/46
  Installing     : libX11-1.3-2.el6.i686                                                                                                       18/46
  Installing     : libXrender-0.9.5-1.el6.i686                                                                                                 19/46
  Installing     : libXext-1.1-3.el6.i686                                                                                                      20/46
  Installing     : libXfixes-4.0.4-1.el6.i686                                                                                                  21/46
  Installing     : libXi-1.3-3.el6.i686                                                                                                        22/46
  Installing     : libXcursor-1.1.10-2.el6.i686                                                                                                23/46
  Installing     : libXcomposite-0.4.1-2.el6.i686                                                                                              24/46
  Installing     : libXdamage-1.1.2-1.el6.i686                                                                                                 25/46
  Installing     : libXrandr-1.3.0-4.el6.i686                                                                                                  26/46
  Installing     : libXinerama-1.1-1.el6.i686                                                                                                  27/46
  Installing     : 1:dbus-libs-1.2.24-4.el6_0.i686                                                                                             28/46
  Installing     : avahi-libs-0.6.25-8.el6.i686                                                                                                29/46
  Installing     : expat-2.0.1-9.1.el6.i686                                                                                                    30/46
  Installing     : fontconfig-2.8.0-3.el6.i686                                                                                                 31/46
  Installing     : libXft-2.1.13-4.1.el6.i686                                                                                                  32/46
  Installing     : libtasn1-2.3-3.el6.i686                                                                                                     33/46
  Installing     : pixman-0.18.4-1.el6_0.1.i686                                                                                                34/46
  Installing     : cairo-1.8.8-3.1.el6.i686                                                                                                    35/46
  Installing     : keyutils-libs-1.4-1.el6.i686                                                                                                36/46
  Installing     : krb5-libs-1.8.2-3.el6_0.7.i686                                                                                              37/46
  Installing     : audit-libs-2.0.4-1.el6.i686                                                                                                 38/46
  Installing     : libthai-0.1.12-3.el6.i686                                                                                                   39/46
  Installing     : pango-1.28.1-3.el6_0.5.i686                                                                                                 40/46
  Installing     : libgpg-error-1.7-3.el6.i686                                                                                                 41/46
  Installing     : libgcrypt-1.4.5-3.el6.i686                                                                                                  42/46
  Installing     : gnutls-2.8.5-4.el6.i686                                                                                                     43/46
  Installing     : 1:cups-libs-1.4.2-35.el6_0.1.i686                                                                                           44/46
  Installing     : gtk2-2.18.9-4.el6.i686                                                                                                      45/46
  Installing     : libXtst-1.0.99.2-3.el6.i686                                                                                                 46/46 

Installed:
  gtk2.i686 0:2.18.9-4.el6                                               libXtst.i686 0:1.0.99.2-3.el6                                              

Dependency Installed:
  atk.i686 0:1.28.0-2.el6                   audit-libs.i686 0:2.0.4-1.el6      avahi-libs.i686 0:0.6.25-8.el6    cairo.i686 0:1.8.8-3.1.el6
  cups-libs.i686 1:1.4.2-35.el6_0.1         dbus-libs.i686 1:1.2.24-4.el6_0    expat.i686 0:2.0.1-9.1.el6        fontconfig.i686 0:2.8.0-3.el6
  freetype.i686 0:2.3.11-6.el6_0.2          gamin.i686 0:0.1.10-9.el6          glib2.i686 0:2.22.5-5.el6         glibc.i686 0:2.12-1.7.el6_0.5
  gnutls.i686 0:2.8.5-4.el6                 jasper-libs.i686 0:1.900.1-15.el6  keyutils-libs.i686 0:1.4-1.el6    krb5-libs.i686 0:1.8.2-3.el6_0.7
  libX11.i686 0:1.3-2.el6                   libXau.i686 0:1.0.5-1.el6          libXcomposite.i686 0:0.4.1-2.el6  libXcursor.i686 0:1.1.10-2.el6
  libXdamage.i686 0:1.1.2-1.el6             libXext.i686 0:1.1-3.el6           libXfixes.i686 0:4.0.4-1.el6      libXft.i686 0:2.1.13-4.1.el6
  libXi.i686 0:1.3-3.el6                    libXinerama.i686 0:1.1-1.el6       libXrandr.i686 0:1.3.0-4.el6      libXrender.i686 0:0.9.5-1.el6
  libcom_err.i686 0:1.41.12-3.el6           libgcc.i686 0:4.4.4-13.el6         libgcrypt.i686 0:1.4.5-3.el6      libgpg-error.i686 0:1.7-3.el6
  libjpeg.i686 0:6b-46.el6                  libpng.i686 2:1.2.44-1.el6         libselinux.i686 0:2.0.94-2.el6    libstdc++.i686 0:4.4.4-13.el6
  libtasn1.i686 0:2.3-3.el6                 libthai.i686 0:0.1.12-3.el6        libtiff.i686 0:3.9.4-1.el6_0.3    libxcb.i686 0:1.5-1.el6
  nss-softokn-freebl.i686 0:3.12.8-1.el6_0  pango.i686 0:1.28.1-3.el6_0.5      pixman.i686 0:0.18.4-1.el6_0.1    zlib.i686 0:1.2.3-25.el6         

Complete!
[sgw@cecil 1.5-linux]$ 

Compacting Windows VirtualBox virtual disks

Common problem that everyone using desktop virtualization has, you setup a basic image, install your basic software but you want to share it and you realize that your basic appliance/image is 15G, boo!

Assuming that you pick dynamically allocate space, then you don’t pay for the full virtual size up front. So everytime you use blocks on the virtual filesystem they get allocated in the corresponding virtual disk file(s).

Out of the box Windows VirtualBox ships a command VBoxManage [1] that provides access to some nifty things to work with your disks. Turns out something simple like this will work, but if you have some more time you can usually do better [3]:

VBoxManage modifyhd disk1.vdi --compact

The core problem is there may be files that you have deleted but not rather than actually delete them the operating systems simple stops pointing at them and leaves them on disk to be over-written later. Good for your performance, you don’t pay for them to be zero’d out, bad for virtual disks since outside of the OS itself the virtual disk management tools still think that those blocks are being used and will not be compacted away.

Now to deal with this, first things first, for a non journaling filesystem aka NTFS we suffer from defragmentation so it is a good practice to perform the defragmentation on the drive first, to get everything nicely lined up on the virtual disk. Next enter the Sysinternals SDelete [2] command. This little gem will actually offer you a few nice options besides the primary secure delete functionality. Here we are only interested in two options, 1 is -c to clean up free space and -z to zero it out.

usage: sdelete [-p passes] [-s] [-q]  ...
       sdelete [-p passes] [-z|-c] [drive letter] ...
   -a         Remove Read-Only attribute
   -c         Clean free space
   -p passes  Specifies number of overwrite passes (default is 1)
   -q         Don't print errors (Quiet)
   -s or -r   Recurse subdirectories
   -z         Zero free space (good for virtual disk optimization)

So we run the following commands: (N.B. Using the -c actually increases the size of the virtual disk file to fill out the maximum size specified for the disk while it attempts to do the cleanup, so if you do not have the temporary space to use, skip that option and just use -z)

c:\ SDelete.exe -c -z

This will run for a while, so take a break and check back on that later. When it completes we are ready to run our VBoxManage *.vdi --compact command again and watch the unused space melt away just like I said in the infommercial…

Good luck!

Footnotes    (↵ returns to text)
  1. VirtualBox Manual – http://www.virtualbox.org/manual
  2. VirtualBox: Suggestions: Resize/Compact VDI size – https://www.virtualbox.org/ticket/28
  3. Sysinternals SDelete – http://technet.microsoft.com/en-us/sysinternals/bb897443