HTCondor Project List Archives



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

Re: [Condor-devel] Condor disk size



On May 19, 2011, at 10:08 PM, Matthew Farrellee wrote:

> Impressive.
> 

Michael did most of the work :)

> 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.

> 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?

> 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.

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

Attachment: smime.p7s
Description: S/MIME cryptographic signature