SoftLayerでベアメタルインスタンスを借りてLibreOfficeをビルドしてみたよ
小ネタ。
IBM印のクラウドサービスであるSoftLayerは仮想化によるインスタンスだけでなくベアメタルサーバーをダッシュボード上ぽちぽちで借りられることで有名ですが、今まではひと月ごとの貸出だったのでシャレで借りるにはちょっと高いなって思って距離置いて見てました。
でもなんか、ある日突然、時間単位課金が可能になってるじゃないですか。超びっくり。これは試すしかない!
最初は一番格安な2coreあたりを借りようと思ったんですが、とりあえずいっちゃん高いのってどれぐらいなんやろって思ってえいっと16core 64GBメモリを選んで価格を見てみたら、時間あたり$1.2ちょっと。ペットボトル1本分? じゃあシャレで借りてみるか、破産するほどじゃないだろ、ってことで借りてみました。
ベアメタルサーバーの振り出しは早ければ30分と言われてますが、ぼくの場合、たぶん高い奴を選んだからなのでしょう、申し込みしてからacceptに1時間ぐらいかかり、課金しますよって連絡にそれから2時間、さらにプロビジョニング終了って言われたのがさらに1時間後ぐらいなので、結構かかってますね。
借りてなにをやるかというと、LibreOfficeのビルドをベンチするに決まっていますw
とりあえず /proc/cpuinfo と /proc/meminfo 貼っておきます。
$ cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 62 model name : Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz stepping : 4 microcode : 0x416 cpu MHz : 2600.052 cache size : 20480 KB physical id : 0 siblings : 16 core id : 0 cpu cores : 8 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms bogomips : 5200.10 clflush size : 64 cache_alignment : 64 address sizes : 46 bits physical, 48 bits virtual power management: processor : 1 vendor_id : GenuineIntel cpu family : 6 model : 62 model name : Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz stepping : 4 microcode : 0x416 cpu MHz : 2600.052 cache size : 20480 KB physical id : 0 siblings : 16 core id : 1 cpu cores : 8 apicid : 2 initial apicid : 2 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms bogomips : 5200.10 clflush size : 64 cache_alignment : 64 address sizes : 46 bits physical, 48 bits virtual power management: processor : 2 vendor_id : GenuineIntel cpu family : 6 model : 62 model name : Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz stepping : 4 microcode : 0x416 cpu MHz : 2600.052 cache size : 20480 KB physical id : 0 siblings : 16 core id : 2 cpu cores : 8 apicid : 4 initial apicid : 4 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms bogomips : 5200.10 clflush size : 64 cache_alignment : 64 address sizes : 46 bits physical, 48 bits virtual power management: (中略) processor : 15 vendor_id : GenuineIntel cpu family : 6 model : 62 model name : Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60GHz stepping : 4 microcode : 0x416 cpu MHz : 2600.052 cache size : 20480 KB physical id : 0 siblings : 16 core id : 7 cpu cores : 8 apicid : 15 initial apicid : 15 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms bogomips : 5200.10 clflush size : 64 cache_alignment : 64 address sizes : 46 bits physical, 48 bits virtual power management: $ cat /proc/meminfo MemTotal: 65942284 kB MemFree: 47738556 kB Buffers: 602552 kB Cached: 15199592 kB SwapCached: 0 kB Active: 12728520 kB Inactive: 3615036 kB Active(anon): 544096 kB Inactive(anon): 540 kB Active(file): 12184424 kB Inactive(file): 3614496 kB Unevictable: 3708 kB Mlocked: 3708 kB SwapTotal: 999420 kB SwapFree: 999420 kB Dirty: 36740 kB Writeback: 176 kB AnonPages: 545164 kB Mapped: 9476 kB Shmem: 744 kB Slab: 1394684 kB SReclaimable: 1319144 kB SUnreclaim: 75540 kB KernelStack: 1656 kB PageTables: 3644 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 33970560 kB Committed_AS: 613892 kB VmallocTotal: 34359738367 kB VmallocUsed: 376288 kB VmallocChunk: 34359354112 kB HardwareCorrupted: 0 kB AnonHugePages: 538624 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 78800 kB DirectMap2M: 3031040 kB DirectMap1G: 66060288 kB
16コアなのでえらいことになってるな。途中省略しました。
あーついでに uname -a も。
Linux XXXXX 3.13.0-34-generic #60-Ubuntu SMP Wed Aug 13 15:45:27 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
で、LibreOfficeをさくっとビルドしましょう。まずはお約束:
# apt-get install build-essential git # apt-get build-dep libreoffice
して、rootのままだとアレなので一般ユーザーにスイッチして、
$ git clone git://gerrit.libreoffice.org/core LibreOffice
してmasterを取ってくる。LibreOfficeにcdして、
$ ./autogen.sh --with-package-format="deb" --enable-epm --with-parallelism=16 --with-lang="ALL"
だ! 16コアでメモリもうんとこさ載ってるので、とーぜん--with-parallelism=16である。
おっと、gstreamerがなんとかいって怒られる。そういやmasterでは使ってるgstreamerのバージョンが違うかなんかだったな。ということで、
# apt-get install libgstreamer0.10-dev libgstreamer-plugins-base-0.10-dev
としてもっかいautogen叩くと、OK、Makefileができた。
あとは:
nohup time make &
して、そのままほっといた。
で、帰る途中にご飯食べてお家帰ってお風呂入ってから確認したら、正常にmakeは成功してるっぽい。
nohup.logの末尾はこんな感じ。
[build CUS] instsetoo_native/install [build BIN] instsetoo_native [build MOD] instsetoo_native [build MOD] libreoffice [build BIN] top level modules: libreoffice [build BIN] loaded modules: UnoControls accessibility accessories android animations apache-commons apple_remote avmedia basctl basebmp basegfx basic bean beanshell binaryurp boost bridges canvas chart2 cli_ure clucene codemaker coinmp collada2gltf comphelper configmgr connectivity cppcanvas cppu cppuhelper cppunit cpputools cui curl dbaccess desktop drawinglayer dtrans editeng embeddedobj embedserv epm eventattacher expat extensions external extras filter firebird forms formula fpicker framework glew glm graphite harfbuzz helpcompiler hsqldb hunspell hwpfilter hyphen i18nlangtag i18npool i18nutil icu idl idlc instsetoo_native io javaunohelper jfreereport jurt jvmaccess jvmfwk l10ntools lcms2 libabw libcdr libcmis libebook libetonyek libexttextcat libfreehand libgltf liblangtag libmspub libmwaw libodfgen liborcus libpagemaker libpng librelogo libreoffice libreofficekit librevenge libvisio libwpd libwpg libwps libxmlsec lingucomponent linguistic lotuswordpro lpsolve mdds more_fonts mythes neon np_sdk nss o3tl odk offapi officecfg oovbaapi oox opencollada openldap openssl package poppler postgresql postprocess pyuno qadevOOo readlicense_oo redland registry remotebridges reportbuilder reportdesign rhino ridljar rsc sal salhelper sax sc scaddins sccomp scp2 scripting sd sdext setup_native sfx2 shell slideshow smoketest solenv soltools sot starmath stoc store svgio svl svtools svx sw swext sysui test testtools toolkit tools touch tubes ucb ucbhelper ucpp udkapi unodevtools unoidl unoil unotest unotools unoxml ure uui vbahelper vcl vigra winaccessibility wizards writerfilter writerperfect xmerge xmlhelp xmloff xmlreader xmlscript xmlsecurity [build ALL] top level modules: build-non-l10n-only build-l10n-only [build ALL] loaded modules: UnoControls accessibility accessories android animations apache-commons apple_remote avmedia basctl basebmp basegfx basic bean beanshell binaryurp boost bridges canvas chart2 cli_ure clucene codemaker coinmp collada2gltf comphelper configmgr connectivity cppcanvas cppu cppuhelper cppunit cpputools cui curl dbaccess desktop drawinglayer dtrans editeng embeddedobj embedserv epm eventattacher expat extensions external extras filter firebird forms formula fpicker framework glew glm graphite harfbuzz helpcompiler hsqldb hunspell hwpfilter hyphen i18nlangtag i18npool i18nutil icu idl idlc instsetoo_native io javaunohelper jfreereport jurt jvmaccess jvmfwk l10ntools lcms2 libabw libcdr libcmis libebook libetonyek libexttextcat libfreehand libgltf liblangtag libmspub libmwaw libodfgen liborcus libpagemaker libpng librelogo libreoffice libreofficekit librevenge libvisio libwpd libwpg libwps libxmlsec lingucomponent linguistic lotuswordpro lpsolve mdds more_fonts mythes neon np_sdk nss o3tl odk offapi officecfg oovbaapi oox opencollada openldap openssl package poppler postgresql postprocess pyuno qadevOOo readlicense_oo redland registry remotebridges reportbuilder reportdesign rhino ridljar rsc sal salhelper sax sc scaddins sccomp scp2 scripting sd sdext setup_native sfx2 shell slideshow smoketest solenv soltools sot starmath stoc store svgio svl svtools svx sw swext sysui test testtools toolkit tools touch tubes ucb ucbhelper ucpp udkapi unodevtools unoidl unoil unotest unotools unoxml ure uui vbahelper vcl vigra winaccessibility wizards writerfilter writerperfect xmerge xmlhelp xmloff xmlreader xmlscript xmlsecurity 50434.17user 2769.59system 1:20:07elapsed 1106%CPU (0avgtext+0avgdata 887460maxresident)k 42904inputs+66557720outputs (299major+781442922minor)pagefaults 0swaps
まあビルドログはいいとして、ビルド時間は1:20:07ってこと?
私Linux力弱いんで読み違いならすみません。まあ、そこそこ早いかなって思います。
とっととサーバー落とさないとお小遣い減っちゃうのでこんなとこで。小ネタで失礼しました。んじゃ!