HTCondor Project List Archives



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Condor-devel] Condor disk size




On Fri, 2011-05-20 at 07:44 -0400, Matthew Farrellee wrote:
> On 05/20/2011 07:26 AM, Brian Bockelman wrote:
> >
> > On May 19, 2011, at 10:08 PM, Matthew Farrellee wrote:
> >
> >> Impressive.
> >>
> >
> > Michael did most of the work :)
> 
> I thought he did all of it. 8o)
> 
> 
> >> What do you think about making the lib names less generic, say libcondorutils instead of libutils? Especially since none actually come with headers.
> >>
> >> Condor libs - procd_client, daemon_core, daemon_client, procapi, cedar, privsep, sysapi, ccb, utils
> >>
> >
> > Yeah, the names kind of drove me nuts.  I was thinking about going through the build files and prefixing everything with condor.  But that can be done as a separate ticket.
> >
> > Another possibility is to drop everything in /usr/{lib64,lib}/condor.
> >
> > Yet another possibility is to do some engineering and aggregate these into a smaller set of libraries.
> 
> /usr/lib{64,}/condor sounds like a good idea. I think of shrinking the 
> set as an artifact from breaking unnecessary deps.
> 
> 
> >> Very poorly named lib - condorapi (log reader not even used by dagman, iirc)
> >>
> >
> > Uh - I think I might be the last person in the world that actually uses libcondorapi then?
> 
> I really hope so. It's an abomination.
> 
> 
> >> Ok to assume elimination of --allow-shlib-undefined is left as an exercise for the hopelessly heroic?
> >>
> >
> > Hopelessly heroic.
> >
> > Actually, it'd just take an expert with a scalpel, some time, and permission to cause a temporary mess.  A lot of the issues looked relatively mild.
> 
> If you're bored some Saturday and want to take a stab at it, let me know.

As someone who has "taken a stab at it", and is still mildly sheepish
given all the knife wounds :-/ , I may be able to offer some breadcrumbs
on where I left off.  The last thing I was considering was to dissect
the headers in condor_includes and parcel them out into their
appropriate library.  Given the nature of some libraries you may even
want to push the deps into yet another library for isolation (Dan & I
did this with std:u as not to pollute condor proper).  I was trying to
hut for a tool helped to isolate circular deps, but then I decided to
just focus on build transformation 1st.  

With that last bit, I will back away slowly from this topic, turn tail,
and run like the wind. 

> 
> 
> Best,
> 
> 
> matt
> 
> 
> > Brian
> >
> >> Best,
> >>
> >>
> >> matt
> >>
> >> On 05/19/2011 10:05 PM, Brian Bockelman wrote:
> >>> Hi,
> >>>
> >>> Michael Hanke's shared libraries work (#2132) got put into a separate branch today, so I've had a lovely evening porting it over to our local RHEL5 RPM (which is basically the Fedora RPM plus Globus support and other goodies enabled).  Unfortunately, there were a handful of issues that didn't make the porting clean.
> >>>
> >>> The difference in on-disk size is, as expected, significant.  For reference, the "big mother" unstripped tarball at UW is 448MB and the UW RPM is 184MB.  Recall these include all externals as static libs, while the rest of the RPMs below link to them (so this isn't an "apples" comparison).
> >>>
> >>> First, the PROPER build with static linking of condor libraries:
> >>>
> >>> [brian@brian-test condor]$ ll ~/rpmbuild/RPMS/x86_64/condor-*7.6.1-0.7.pre.x86_64.rpm  -h
> >>> -rw-r--r-- 1 brian brian  38M May 17 09:35 /home/brian/rpmbuild/RPMS/x86_64/condor-7.6.1-0.7.pre.x86_64.rpm
> >>> -rw-r--r-- 1 brian brian 236K May 17 09:35 /home/brian/rpmbuild/RPMS/x86_64/condor-classads-7.6.1-0.7.pre.x86_64.rpm
> >>> -rw-r--r-- 1 brian brian 299K May 17 09:35 /home/brian/rpmbuild/RPMS/x86_64/condor-classads-devel-7.6.1-0.7.pre.x86_64.rpm
> >>> -rw-r--r-- 1 brian brian 157M May 17 09:39 /home/brian/rpmbuild/RPMS/x86_64/condor-debuginfo-7.6.1-0.7.pre.x86_64.rpm
> >>> -rw-r--r-- 1 brian brian 775K May 17 09:35 /home/brian/rpmbuild/RPMS/x86_64/condor-kbdd-7.6.1-0.7.pre.x86_64.rpm
> >>> -rw-r--r-- 1 brian brian 2.0M May 17 09:35 /home/brian/rpmbuild/RPMS/x86_64/condor-qmf-7.6.1-0.7.pre.x86_64.rpm
> >>> -rw-r--r-- 1 brian brian 1.6M May 17 09:35 /home/brian/rpmbuild/RPMS/x86_64/condor-vm-gahp-7.6.1-0.7.pre.x86_64.rpm
> >>>
> >>> Now, with the shared library patches:
> >>>
> >>> [brian@brian-test condor]$ ll ~/rpmbuild/RPMS/x86_64/condor-*7.6.1-0.9.pre.x86_64.rpm  -h
> >>> -rw-r--r-- 1 brian brian 4.7M May 19 20:34 /home/brian/rpmbuild/RPMS/x86_64/condor-7.6.1-0.9.pre.x86_64.rpm
> >>> -rw-r--r-- 1 brian brian 236K May 19 20:34 /home/brian/rpmbuild/RPMS/x86_64/condor-classads-7.6.1-0.9.pre.x86_64.rpm
> >>> -rw-r--r-- 1 brian brian  77K May 19 20:34 /home/brian/rpmbuild/RPMS/x86_64/condor-classads-devel-7.6.1-0.9.pre.x86_64.rpm
> >>> -rw-r--r-- 1 brian brian  22M May 19 20:34 /home/brian/rpmbuild/RPMS/x86_64/condor-debuginfo-7.6.1-0.9.pre.x86_64.rpm
> >>> -rw-r--r-- 1 brian brian  28K May 19 20:34 /home/brian/rpmbuild/RPMS/x86_64/condor-kbdd-7.6.1-0.9.pre.x86_64.rpm
> >>> -rw-r--r-- 1 brian brian 413K May 19 20:34 /home/brian/rpmbuild/RPMS/x86_64/condor-qmf-7.6.1-0.9.pre.x86_64.rpm
> >>> -rw-r--r-- 1 brian brian 143K May 19 20:34 /home/brian/rpmbuild/RPMS/x86_64/condor-vm-gahp-7.6.1-0.9.pre.x86_64.rpm
> >>>
> >>> 4.7MB ain't shabby!  Shared libraries being shared libraries, you can now peruse all the linked baggage of the svelte 73KB condor_q.  See below.
> >>>
> >>> Dynamic libraries have all the advantages of dynamic libraries and all the disadvantages of dynamic libraries.  No need to revisit them here ... but I thought the data point about binary size was interesting enough to share!
> >>>
> >>> Brian
> >>>
> >>>
> >>> [brian@brian-test condor]$ ldd /usr/bin/condor_q
> >>> 	linux-vdso.so.1 =>    (0x00007fffda7c4000)
> >>> 	libdl.so.2 =>   /lib64/libdl.so.2 (0x0000003feb200000)
> >>> 	libconversion.so =>   /usr/lib64/libconversion.so (0x00007f722b2ad000)
> >>> 	libanalysis.so =>   /usr/lib64/libanalysis.so (0x00007f722b06d000)
> >>> 	libqmgmt.so =>   /usr/lib64/libqmgmt.so (0x00007f722ae62000)
> >>> 	libprocd_client.so =>   /usr/lib64/libprocd_client.so (0x00007f722ac58000)
> >>> 	libdaemon_client.so =>   /usr/lib64/libdaemon_client.so (0x00007f722aa15000)
> >>> 	libprocapi.so =>   /usr/lib64/libprocapi.so (0x00007f722a80b000)
> >>> 	libcedar.so =>   /usr/lib64/libcedar.so (0x00007f722a59e000)
> >>> 	libprivsep.so =>   /usr/lib64/libprivsep.so (0x00007f722a399000)
> >>> 	libclassads.so =>   /usr/lib64/libclassads.so (0x00007f722a111000)
> >>> 	libsysapi.so =>   /usr/lib64/libsysapi.so (0x00007f7229e60000)
> >>> 	libccb.so =>   /usr/lib64/libccb.so (0x00007f7229c42000)
> >>> 	libutils.so =>   /usr/lib64/libutils.so (0x00007f7229880000)
> >>> 	libvomsapi.so.0 =>   /usr/lib64/libvomsapi.so.0 (0x0000003a2b000000)
> >>> 	libglobus_gss_assist.so.3 =>   /usr/lib64/libglobus_gss_assist.so.3 (0x000000384ce00000)
> >>> 	libglobus_gssapi_gsi.so.4 =>   /usr/lib64/libglobus_gssapi_gsi.so.4 (0x000000384d200000)
> >>> 	libglobus_gsi_proxy_core.so.0 =>   /usr/lib64/libglobus_gsi_proxy_core.so.0 (0x000000384ba00000)
> >>> 	libglobus_gsi_credential.so.1 =>   /usr/lib64/libglobus_gsi_credential.so.1 (0x000000384de00000)
> >>> 	libglobus_gsi_callback.so.0 =>   /usr/lib64/libglobus_gsi_callback.so.0 (0x000000384c600000)
> >>> 	libglobus_gsi_sysconfig.so.1 =>   /usr/lib64/libglobus_gsi_sysconfig.so.1 (0x000000384b600000)
> >>> 	libglobus_oldgaa.so.0 =>   /usr/lib64/libglobus_oldgaa.so.0 (0x000000384d600000)
> >>> 	libglobus_gsi_cert_utils.so.0 =>   /usr/lib64/libglobus_gsi_cert_utils.so.0 (0x000000384be00000)
> >>> 	libglobus_openssl.so.0 =>   /usr/lib64/libglobus_openssl.so.0 (0x000000384ca00000)
> >>> 	libglobus_openssl_error.so.0 =>   /usr/lib64/libglobus_openssl_error.so.0 (0x000000384c200000)
> >>> 	libglobus_proxy_ssl.so.1 =>   /usr/lib64/libglobus_proxy_ssl.so.1 (0x0000003ff2e00000)
> >>> 	libglobus_callout.so.0 =>   /usr/lib64/libglobus_callout.so.0 (0x000000384da00000)
> >>> 	libglobus_common.so.0 =>   /usr/lib64/libglobus_common.so.0 (0x000000384b200000)
> >>> 	libltdl.so.3 =>   /usr/lib64/libltdl.so.3 (0x0000003feda00000)
> >>> 	libexpat.so.0 =>   /lib64/libexpat.so.0 (0x0000003d68200000)
> >>> 	libpcre.so.0 =>   /lib64/libpcre.so.0 (0x0000003ff0200000)
> >>> 	libssl.so.6 =>   /lib64/libssl.so.6 (0x00000031f0c00000)
> >>> 	libcrypto.so.6 =>   /lib64/libcrypto.so.6 (0x0000003fede00000)
> >>> 	libkrb5.so.3 =>   /usr/lib64/libkrb5.so.3 (0x0000003feee00000)
> >>> 	libcom_err.so.2 =>   /lib64/libcom_err.so.2 (0x0000003fee600000)
> >>> 	libk5crypto.so.3 =>   /usr/lib64/libk5crypto.so.3 (0x0000003fef600000)
> >>> 	libkrb5support.so.0 =>   /usr/lib64/libkrb5support.so.0 (0x0000003feea00000)
> >>> 	libdaemon_core.so =>   /usr/lib64/libdaemon_core.so (0x00007f7229629000)
> >>> 	libstdc++.so.6 =>   /usr/lib64/libstdc++.so.6 (0x0000003a2ac00000)
> >>> 	libm.so.6 =>   /lib64/libm.so.6 (0x0000003feae00000)
> >>> 	libgcc_s.so.1 =>   /lib64/libgcc_s.so.1 (0x0000003a2a800000)
> >>> 	libpthread.so.0 =>   /lib64/libpthread.so.0 (0x0000003feb600000)
> >>> 	libc.so.6 =>   /lib64/libc.so.6 (0x0000003feaa00000)
> >>> 	/lib64/ld-linux-x86-64.so.2 (0x0000003fea600000)
> >>> 	libz.so.1 =>   /usr/lib64/libz.so.1 (0x0000003feba00000)
> >>> 	libgssapi_krb5.so.2 =>   /usr/lib64/libgssapi_krb5.so.2 (0x00000031ef400000)
> >>> 	libkeyutils.so.1 =>   /lib64/libkeyutils.so.1 (0x0000003fee200000)
> >>> 	libresolv.so.2 =>   /lib64/libresolv.so.2 (0x0000003fece00000)
> >>> 	libselinux.so.1 =>   /lib64/libselinux.so.1 (0x0000003fec200000)
> >>> 	libsepol.so.1 =>   /lib64/libsepol.so.1 (0x0000003fec600000)
> >>> [brian@brian-test condor]$ ldd /usr/sbin/condor_shadow
> >>> 	linux-vdso.so.1 =>    (0x00007fffb8bff000)
> >>> 	libdl.so.2 =>   /lib64/libdl.so.2 (0x0000003feb200000)
> >>> 	libqmgmt.so =>   /usr/lib64/libqmgmt.so (0x00007f7035a14000)
> >>> 	libprocd_client.so =>   /usr/lib64/libprocd_client.so (0x00007f7035809000)
> >>> 	libdaemon_core.so =>   /usr/lib64/libdaemon_core.so (0x00007f70355ba000)
> >>> 	libdaemon_client.so =>   /usr/lib64/libdaemon_client.so (0x00007f7035378000)
> >>> 	libprocapi.so =>   /usr/lib64/libprocapi.so (0x00007f703516d000)
> >>> 	libcedar.so =>   /usr/lib64/libcedar.so (0x00007f7034f00000)
> >>> 	libprivsep.so =>   /usr/lib64/libprivsep.so (0x00007f7034cfc000)
> >>> 	libclassads.so =>   /usr/lib64/libclassads.so (0x00007f7034a73000)
> >>> 	libsysapi.so =>   /usr/lib64/libsysapi.so (0x00007f70347c2000)
> >>> 	libccb.so =>   /usr/lib64/libccb.so (0x00007f70345a5000)
> >>> 	libutils.so =>   /usr/lib64/libutils.so (0x00007f70341e2000)
> >>> 	libvomsapi.so.0 =>   /usr/lib64/libvomsapi.so.0 (0x0000003a2b000000)
> >>> 	libglobus_gss_assist.so.3 =>   /usr/lib64/libglobus_gss_assist.so.3 (0x000000384ce00000)
> >>> 	libglobus_gssapi_gsi.so.4 =>   /usr/lib64/libglobus_gssapi_gsi.so.4 (0x000000384d200000)
> >>> 	libglobus_gsi_proxy_core.so.0 =>   /usr/lib64/libglobus_gsi_proxy_core.so.0 (0x000000384ba00000)
> >>> 	libglobus_gsi_credential.so.1 =>   /usr/lib64/libglobus_gsi_credential.so.1 (0x000000384de00000)
> >>> 	libglobus_gsi_callback.so.0 =>   /usr/lib64/libglobus_gsi_callback.so.0 (0x000000384c600000)
> >>> 	libglobus_gsi_sysconfig.so.1 =>   /usr/lib64/libglobus_gsi_sysconfig.so.1 (0x000000384b600000)
> >>> 	libglobus_oldgaa.so.0 =>   /usr/lib64/libglobus_oldgaa.so.0 (0x000000384d600000)
> >>> 	libglobus_gsi_cert_utils.so.0 =>   /usr/lib64/libglobus_gsi_cert_utils.so.0 (0x000000384be00000)
> >>> 	libglobus_openssl.so.0 =>   /usr/lib64/libglobus_openssl.so.0 (0x000000384ca00000)
> >>> 	libglobus_openssl_error.so.0 =>   /usr/lib64/libglobus_openssl_error.so.0 (0x000000384c200000)
> >>> 	libglobus_proxy_ssl.so.1 =>   /usr/lib64/libglobus_proxy_ssl.so.1 (0x0000003ff2e00000)
> >>> 	libglobus_callout.so.0 =>   /usr/lib64/libglobus_callout.so.0 (0x000000384da00000)
> >>> 	libglobus_common.so.0 =>   /usr/lib64/libglobus_common.so.0 (0x000000384b200000)
> >>> 	libltdl.so.3 =>   /usr/lib64/libltdl.so.3 (0x0000003feda00000)
> >>> 	libexpat.so.0 =>   /lib64/libexpat.so.0 (0x0000003d68200000)
> >>> 	libpcre.so.0 =>   /lib64/libpcre.so.0 (0x0000003ff0200000)
> >>> 	libssl.so.6 =>   /lib64/libssl.so.6 (0x00000031f0c00000)
> >>> 	libcrypto.so.6 =>   /lib64/libcrypto.so.6 (0x0000003fede00000)
> >>> 	libkrb5.so.3 =>   /usr/lib64/libkrb5.so.3 (0x0000003feee00000)
> >>> 	libcom_err.so.2 =>   /lib64/libcom_err.so.2 (0x0000003fee600000)
> >>> 	libk5crypto.so.3 =>   /usr/lib64/libk5crypto.so.3 (0x0000003fef600000)
> >>> 	libkrb5support.so.0 =>   /usr/lib64/libkrb5support.so.0 (0x0000003feea00000)
> >>> 	libstdc++.so.6 =>   /usr/lib64/libstdc++.so.6 (0x0000003a2ac00000)
> >>> 	libm.so.6 =>   /lib64/libm.so.6 (0x0000003feae00000)
> >>> 	libgcc_s.so.1 =>   /lib64/libgcc_s.so.1 (0x0000003a2a800000)
> >>> 	libpthread.so.0 =>   /lib64/libpthread.so.0 (0x0000003feb600000)
> >>> 	libc.so.6 =>   /lib64/libc.so.6 (0x0000003feaa00000)
> >>> 	/lib64/ld-linux-x86-64.so.2 (0x0000003fea600000)
> >>> 	libz.so.1 =>   /usr/lib64/libz.so.1 (0x0000003feba00000)
> >>> 	libgssapi_krb5.so.2 =>   /usr/lib64/libgssapi_krb5.so.2 (0x00000031ef400000)
> >>> 	libkeyutils.so.1 =>   /lib64/libkeyutils.so.1 (0x0000003fee200000)
> >>> 	libresolv.so.2 =>   /lib64/libresolv.so.2 (0x0000003fece00000)
> >>> 	libselinux.so.1 =>   /lib64/libselinux.so.1 (0x0000003fec200000)
> >>> 	libsepol.so.1 =>   /lib64/libsepol.so.1 (0x0000003fec600000)
> >>>
> >>>
> >>>
> >>>
> >>> _______________________________________________
> >>> Condor-devel mailing list
> >>> Condor-devel@xxxxxxxxxxx
> >>> https://lists.cs.wisc.edu/mailman/listinfo/condor-devel
> >
> 
> _______________________________________________
> Condor-devel mailing list
> Condor-devel@xxxxxxxxxxx
> https://lists.cs.wisc.edu/mailman/listinfo/condor-devel