Swift OpenStackãªããžã§ã¯ãã¹ãã¬ãŒãžã«ãŸã æ
£ããŠããªã人ã®ããã«ãæ§é ãšã¢ã«ãŽãªãºã ã«é¢ããäžè¬çãªæ
å ±ã¯ãã§ã«ããã°ã«èšèŒãããŠããŸãïŒ
habrahabr.ru/company/mirantis_openstack/blog/176195ãhabrahabr.ru/company/mirantis_openstack/blog/176455 ã
Swift for OpenStackã®ã¢ã€ãã¢ãæ¢ã«ãæã¡ã®å Žåããã®ãããžã§ã¯ããããã«åçãã€æè»ã§ããããåžžã«ç¥ã£ãŠããã
æå· åãçŽæ¥çãªãšã©ãŒä¿®æ£ã䌎ãã³ãŒãã£ã³ã° ãããã³éçºã®å€ãã®åéã§ã®ä»ã®æŽæ°ã®ã¿ã絶ããå€æŽããŠçµã¿èŸŒã¿ãŸãã ãã®ãªãªãŒã¹ã®äž»ãªæ©èœã¯Swift 1.9.0ã§ãã
ã°ããŒãã«ã¯ã©ã¹ã¿ãªã³ã°ãµããŒãã§ãã ããã¯ã1ã€ã®ã¯ã©ã¹ã¿ãŒãããããã®éã§åæ£ãããé«é
延ã®ãããã¯ãŒã¯ã§æ¥ç¶ãããäžé£ã®ãšã¬ã¡ã³ãã«åæ£ããæ©èœãæäŸããããšãæå³ããŸãã
æ°ããããããã£ã®å®éã®åäœã確èªããã«ã¯ãå¿
èŠãªäœæ¥éã確å®ã«åçŸã§ãããã¹ãããŒã«ãå¿
èŠã§ãã ãªããžã§ã¯ãããŒã¿ãŠã§ã¢ããŠã¹ã¯ãããªãŒéå±€ã®ä»£ããã«ããã¹ããããŠããªãã³ã³ããã®ã»ãããšããããèŠã€ããããã®äžæã®ããŒã¯ã³ããªããžã§ã¯ãã®æ ŒçŽã«äœ¿çšããããšããç¹ã§ãä»ãšç°ãªããŸãã ãã®ããããªããžã§ã¯ãããŒã¿ãŠã§ã¢ããŠã¹ããã¹ãããã«ã¯ãç¹å®ã®èŠä»¶ã«åŸã£ãŠãSwiftãªã¯ãšã¹ãã§æ©èœããç¹å¥ãªããŒã«ãå¿
èŠã§ãã ãããŠãããã§ssbenchãšswift-benchãå©ãã«ãªããŸã-SwiftStackã«ãã£ãŠéçºãããSwiftããã©ãŒãã³ã¹ãã¹ãããŒã«ã
ãã®ãããæ°ãããªãªãŒã¹ã®ãªãªãŒã¹ã§ã¯ãã€ãããŒã·ã§ã³ãããã©ãŒãã³ã¹ã«ã©ã®ããã«åœ±é¿ãããïŒå°å-æ
å ±ãæçš¿ããããã®ãªã³ã°ã®æ°ããã¬ãã«ããããã¯ãŒã¯ã¬ããªã±ãŒã·ã§ã³ãæ°ããèªã¿åãããã³æžã蟌ã¿ããããã£ïŒã調ã¹ãå¿
èŠããããŸãã
æ°æ©èœã®è©äŸ¡
æ°ããããããã£ã調ã¹ãŠã¿ãŸãããã ãªãŒãžã§ã³-ãŸãŒã³ãã°ã«ãŒãåããããªã³ã°ã®æ°ãããããã¬ãã«ã ãã®æ§é ãšã¢ã«ãŽãªãºã ã®è©³çŽ°ã«ã€ããŠã¯ã
ãã¡ããã芧ãã ãã ã ãã®ã¬ãã«ã¯ãã¯ã©ã¹ã¿ãŒã®å°ççååžããµããŒãããã¬ããªã«ãå€æ°ã®ç©çé åã«é
眮ã§ããããã«ãããããã·ãµãŒããŒã®ããŒã«ã©ã€ãºããµããŒãããŸãïŒãããã·ã¢ãã£ããã£ïŒã ç°¡åã«èšãã°ããããã·ãµãŒããŒã¯äž»ã«ããŒã«ã«ãªãŒãžã§ã³ã䜿çšããã¬ããªã±ãŒã·ã§ã³ãéããŠãªããžã§ã¯ãã¯ä»ã®ãªãŒãžã§ã³ã«ç§»åããŸãã
ããŒã«ããã
Swift-All-In-OneïŒSAIOïŒãã€ã³ã¹ããŒã«ãããåäžã®ä»®æ³ãã·ã³ã®ããã©ãŒãã³ã¹ãã¹ãã¯ãè¿
éãªãã³ãã䜿çšããŠå®è¡ãããŸããã ãã®ããŒã«ã¯ãããžã§ã¯ãèªäœã®äžéšã§ãããæšæºæ§æã«å¿
èŠãªæ
å ±ãç°¡åã«åéã§ããŸãã è€åã¯ã©ã¹ã¿ãŒã®ãã¹ãã«ã¯ãããå
·äœçãªè² è·ãæå®ã§ãããããssbenchã䜿çšãããŸããã ssbenchãSwiftStackã«ãã£ãŠäœæããããªãŒãã³ãœãŒã¹ã®ãããžã§ã¯ãã§ãããSwiftãããžã§ã¯ãã®äžéšã§ã¯ãããŸããã
ç®ç
swift-benchããã³ssbenchã䜿çšããéã®äž»ãªã¿ã¹ã¯ã¯ãå€æŽããªããžã§ã¯ãã¹ãã¢ã«ãã£ãŠåŠçããã1ç§ãããã®å¹³åãªã¯ãšã¹ãæ°ã«ã©ã®ããã«åœ±é¿ãããã調æ»ããããšã§ããã
æ§é
ssbenchã¯ãã¡ãã»ãŒãžãã¥ãŒãããã³ã«ã䜿çšããŠæ
å ±ã管çããã³ååŸããŸãã ã¹ã¯ãªããã¯JSONãã¡ã€ã«ã«èšè¿°ãããŠããŸãã å°å
¥ãããæ§æã«å¿ããŠãè² è·ãã¹ããå®å®æ§ãã¹ããªã©ãããŸããŸãªã¿ã€ãã®ããã©ãŒãã³ã¹ãã¹ããå®è¡ã§ããŸãã
ããŸããŸãªãµã€ãºã®å°ããªãå°ããªãäžçšåºŠã®ãã¡ã€ã«ã®3ã€ã®ã¯ã©ã¹ã䜿çšããã·ããªãªã®äŸãèããŠã¿ãŸãããã ãInitial_filesãã¯ãç¹å®ã®ã¿ã€ãã®ãã¡ã€ã«ã®æ°ãèšå®ããŸãã crud_profileã®ãã¹ãŠã®å€ã®åèšãoperation_countã®æäœã®ç·æ°ã®100ïŒ
ã§ããå ŽåãCrud_profileã¯åèŠæ±ã«å¯ŸããŠå®è¡ãããæäœã®å²åãåæ£ããŸãã ããšãã°ããcrud_profileãïŒ[3ã4ã2ã2]ã¯ããªã¯ãšã¹ãã®ç·æ°ã®ãã¡ããªããžã§ã¯ãã®äœæã«27ïŒ
ãèªã¿åãã«36ïŒ
ãæŽæ°ãšåé€ã«ãããã18ïŒ
ãå¿
èŠã§ããããšãæå³ããŸãã 䞊åã¯ã©ã€ã¢ã³ãã®æ倧æ°ãuser_countãã®å Žåãã³ã³ããã®æ°ãcontainer_countããäœæããããã®ååã¯ãcontainer_baseãããã®æååã®ãã¬ãã£ãã¯ã¹ã«ãªããŸãã ãã®å Žåããcontainer_concurrencyãã¯ãã³ã³ãããäœæããã¯ã©ã€ã¢ã³ãã®æ°ã決å®ããŸãã
ã¹ã¯ãªããã®äŸãèããŠã¿ãŸãããã
{
ãååãïŒãäžèŠæš¡ãã¹ãã·ããªãªãã
ããµã€ãºãïŒ[{ïŒãã¡ã€ã«ã®çš®é¡ãèšè¿°ãã
ãååãïŒãå°ããªãã
ãSize_minãïŒ1000ãïŒãã€ãåäœã®ãªããžã§ã¯ãã®ãµã€ãºç¯å²
ãSize_maxãïŒ16000
}ã{
ãååãïŒãå°ãããã
ãSize_minãïŒ100000ã
ãSize_maxãïŒ200000
}ã{
ãååãïŒãäžãã
ãSize_minãïŒ1,000,000ã
ãSize_maxãïŒ2,000,000
}]ã
"Initial_files"ïŒ{ïŒæå®ãããã¿ã€ãã®ãªããžã§ã¯ãã®æ°
å°ããªïŒ20ã
ãå°ãïŒ20ã
ãäžãïŒ2
}ã
ãOperation_countãïŒ100ãïŒèŠæ±ã®æ°
"Crud_profile"ïŒ[3ã4ã2ã2]ãïŒCREATEãREADãUPDATEãDELETEéã®ã¯ãšãªã®åæ£
ãUser_countãïŒ5
ãContainer_baseãïŒãssbenchãã
ãã³ã³ããæ°ãïŒ100ã
ãcontainer_concurrencyãïŒ10
}
ssbenchã¯ãæ¿èªv 1.0ããã³v 2.0ããµããŒãããŠããŸããã€ãŸããOpenStackã³ã³ããŒãã³ããŸãã¯åå¥ã®ãªããžã§ã¯ãã¹ãã¬ãŒãžãšããŠäœ¿çšã§ããŸãã
çµæ
ssbenchã¯ã2ã€ã®åœ¢åŒã§çµæãæäŸããŸãã æåã®ãªãã·ã§ã³ã¯ãé
延ã1ç§ãããã®åŠçãããæäœã®æ°ãããã³åŠçãããèŠæ±ã®ç·æ°ã«é¢ããæ
å ±ãå«ã詳现ãªçµ±èšã§ãã 2çªç®ã®ãªãã·ã§ã³ã¯ã1ç§ãããã«åŠçããããªã¯ãšã¹ãã®æ°ãå«ããã¹ãã°ã©ã ãäœæããããã®CSVããŒãã«ã§ãã
以äžã¯ãããã©ãŒãã³ã¹ã®ããä»®æ³ãã·ã³ã§å®è¡ãããssbenchã¬ããŒãã®äŸã§ãã
RAMïŒ2GB
VCPUïŒ1
ãã£ãã·ã¥èªã¿åãã®ã¿ã€ãã³ã°ïŒ5432.52 MB /ç§
ãããã¡ãªã³ã°ããããã£ã¹ã¯èªã¿åãã®ã¿ã€ãã³ã°ïŒ57ã91 MB /ç§

æ¹æ³è«
ãããã®ããŒã«ãããã©ãŒãã³ã¹ãã¹ãã«äœ¿çšãããšãSwiftãªããžã§ã¯ãããŒã¿ãŠã§ã¢ããŠã¹ã®ããŸããŸãªå±éãªãã·ã§ã³ãè©äŸ¡ããæé©ãªãã®ãéžæã§ããŸãã
ãªã³ã°æ¯èŒ
ãã®ãããç°ãªãå°åã®ã»ãããããã€ã¹ã®æ°ããªããžã§ã¯ãã®ã³ããŒã§çµæã確èªãããå Žåããã®ãªãã·ã§ã³ãæäŸããŸãã
â¢4ã€ã®ãŸãŒã³ãš3ã€ã®ã¬ããªã«ãæã€1ã€ã®ãªãŒãžã§ã³ã«4ã€ã®ããã€ã¹ãã°ã«ãŒãåãã
â¢2ã€ã®ãŸãŒã³ãš3ã€ã®ã¬ããªã«ãæã€1ã€ã®ãªãŒãžã§ã³ã«ã°ã«ãŒã4ããã€ã¹
â¢1ã€ã®ãŸãŒã³ãš3ã€ã®ã¬ããªã«ãæã€1ã€ã®ãªãŒãžã§ã³ã«ã°ã«ãŒã4ããã€ã¹
â¢4ã€ã®ãŸãŒã³ãš2ã€ã®ã¬ããªã«ãæã€2ã€ã®ãªãŒãžã§ã³ã®ã°ã«ãŒã4ããã€ã¹
æçµçãªãŠã£ã¶ãŒãã§Swift 1.9.0ã®ãªãªãŒã¹ã®ããã©ãŒãã³ã¹ãæ¯èŒããŸããã
ã³ããããã | ãåå | å°å | ãŸãŒã³ | ããã | ååŸ | DEL |
dec517e3497df25cff70f99bd6888739d410d771 | fsyncåŸã«ãã£ãã·ã¥ããããããã | 1 | 4 | 26.4 / s | 107.8 | 32 |
13347af64cc976020e343f0fd3767f09e26598de | ãSwiftã®keystoneauth ACLãµããŒãã®æ¹åããçµ±å | 1 | 4 | 35.1 | 116.8 | 32.9 |
151313ba8c6612183f6a733edbcbc311b3360949 | ãã¹ã¿ãŒã¹ãŠã£ãã1.9.0 | 1 | 4 | 45.3 | 133.1 | 44.2 |
151313ba8c6612183f6a733edbcbc311b3360949 | ãã¹ã¿ãŒã¹ãŠã£ãã1.9.0 | 1 | 2 | 49.1 | 160.3 | 51.3 |
151313ba8c6612183f6a733edbcbc311b3360949 | ãã¹ã¿ãŒã¹ãŠã£ãã1.9.0 | 1 | 1 | 42.3 | 175.3 | 40 |
151313ba8c6612183f6a733edbcbc311b3360949 | ãã¹ã¿ãŒã¹ãŠã£ãã1.9.0 | 2 | 4 | 54.3 | 109.8 | 49.7 |
ãããã·ã¢ãã£ããã£
ãããã·ã¢ãã£ããã£ããªã³ãŸãã¯ãªãã«ãããšãã®å®äºãããªã¯ãšã¹ãã®æ°ã®æ¯èŒïŒ
-4ã€ã®ããã€ã¹ã¯ã4ã€ã®ãŸãŒã³ãš3ã€ã®ã¬ããªã«ãæã€1ã€ã®é åã«ã°ã«ãŒãåãããŸã
| ç¡å¹ã«ãã | æå¹ã«ãã |
ããã | 45.3 | 7.2 |
ååŸ | 133.1 | 160.3 |
DEL | 44.2 | 55.2 |
-4ã€ã®ããã€ã¹ã2ã€ã®ãŸãŒã³ãš3ã€ã®ã¬ããªã«ãæã€1ã€ã®é åã«ã°ã«ãŒãåãããŸã
| ç¡å¹ã«ãã | æå¹ã«ãã |
ããã | 49.1 | 3.8 |
ååŸ | 160.3 | 157 |
DEL | 51.3 | 57.8 |
-4ã€ã®ããã€ã¹ã1ã€ã®é åã«ã°ã«ãŒãåããã1ã€ã®ãŸãŒã³ãš3ã€ã®ã¬ããªã«ããããŸã
| ç¡å¹ã«ãã | æå¹ã«ãã |
ããã | 42.3 | 55.3 |
ååŸ | 175.3 | 160.3 |
DEL | 40 | 55.2 |
-4ã€ã®ããã€ã¹ã¯ã4ã€ã®ãŸãŒã³ãš2ã€ã®ã¬ããªã«ãæã€2ã€ã®é åã«ã°ã«ãŒãåãããŸã
| ç¡å¹ã«ãã | æå¹ã«ãã |
ããã | 54.3 | 3.4 |
ååŸ | 109.8 | 136 |
DEL | 49.7 | 49 |
ãæ°ã¥ãã®ãšãããåŠçãããGETèŠæ±ã®æ°ã¯å¢å ããŸãããPUTã¯æžå°ããŸãã ããã¯ãèšé²ã®ãããã·èšå®ã§2ã€ã®ãã©ã¡ãŒã¿ãŒãæå®ãããŠããããã«çºçããŸããïŒå°åãšãŸãŒã³ãã€ãŸãããã®ã«ãŒã«ã«é©åããããã€ã¹ã¯1ã€ã ãã§ãã å°åã®ã¿ãèªã¿åãçšã«æå®ãããŠããããããã®å°åã®ãã¹ãŠã®ããã€ã¹ã¯èªã¿åãçšã«ããŒã«ã«ã«ãªããŸããã
ã¹ã«ãŒããã
ããã©ãŒãã³ã¹ããã¹ãããå¥ã®æ¹æ³ã¯ãssbenchã®ã¯ãŒã¯ãããŒã®æ°ãå¢ãããªããçµæãæ¯èŒããããšã§ãã 次ã®äŸã§ã¯ãåã¯ãŒã«ãŒã¯12人ã®ãŠãŒã¶ãŒãããªã¯ãšã¹ããäœæããŸãã

ãã®ã·ããªãªã®ã¢ã€ãã¢ã¯ãããã©ãŒãã³ã¹ãäœäžãå§ãããŸã§é¡§å®¢ã®æ°ãåŸã
ã«å¢ããããšã§ããã€ãŸããã¯ã©ã¹ã¿ãŒå
ã®äžŠååã®éçã«éããŸããã
ãã®ä»ã®æ¹æ³
è€åã¯ã©ã¹ã¿ãŒã®çµæãè©äŸ¡ããããã«ã9ã€ã®ããã€ã¹ã3ã€ã®é åã«åå²ããŸããã 1ã€ã®ãŠã£ã¶ãŒãã¯ãåå¥ã®ãã¹ãã§å®è¡ããã20人ã®ãŠãŒã¶ãŒãããªã¯ãšã¹ããäœæãããã¹ãŠã®ã¯ãŒã«ãŒã®ããŒã¿ãåéããŸãã ã¹ã¯ãªããã«ã¯æ¬¡ã®ãããªãã©ã¡ãŒã¿ãŒãå«ãŸããŠããŸãã100åã®ã³ã³ãããŒã512 MBã®ãµã€ãºã®100åã®ãã¡ã€ã«ãåŠçããŸãã
Id_run | r1-01 | r1-02 | r1-03 | r2-01 | r2-02 | r2-03 | r3-01 | r3-02 | r3-03 |
1 | ãã¹ã¿ãŒ | åŽåè
| åŽåè
| | | | | | |
2 | ãã¹ã¿ãŒ | | | åŽåè
| åŽåè
| | | | |
3 | ãã¹ã¿ãŒ | | | | | | åŽåè
| åŽåè
| |
4 | ãã¹ã¿ãŒ | | | | | åŽåè
| åŽåè
| | |
5 | ãã¹ã¿ãŒ | | | | | åŽåè
| åŽåè
| | åŽåè
|
6 | ãã¹ã¿ãŒ | åŽåè
| | | åŽåè
| | åŽåè
| | |
7 | ãã¹ã¿ãŒ | | åŽåè
| åŽåè
| | åŽåè
| | | åŽåè
|
ãã®ãããªååžã䜿çšããŠãå°åããšã«æ
å ±ãåéããŸããã
â¢æåã®ã±ãŒã¹ã§ã¯ãããŒã«ã«ãªãŒãžã§ã³ã®ã¿ã䜿çšãããŸã
â¢2çªç®ãš3çªç®ã¯1ã€ã®éããŒã«ã«ãªãŒãžã§ã³ã䜿çšããŸã
â¢4çªç®ã®ã±ãŒã¹ã§ã¯ã2ã€ã®éããŒã«ã«é åã䜿çšãããŸã
â¢ã±ãŒã¹5ã7ã§ã¯ãã¯ãŒã«ãŒã®æ°ãå¢å ããŠããŸãã
ã¹ããã6ã§ã¯ãã¯ã©ã¹ã¿ãŒã®å¶éã«ééããããã©ãŒãã³ã¹ãäœäžãå§ããŸãã
ãããã«
ãã®èª¿æ»ã«ãããSwift 1.9.0ã®ãªãªãŒã¹ã¯ãã¹ãã¬ãŒãžã®ããã©ãŒãã³ã¹ã®åäžã«å¯Ÿå¿ããããã®ãžã£ãŒã¯ã§ãããšæèšã§ããŸãã
補åã®èª¿æ»ãšäœæã«äœ¿çšããããã©ãŒãã³ã¹ãã¹ãæ¹æ³ã®äžéšã以äžã«ç€ºããŸãã
ç¬èªã®ãã¹ãç°å¢ã®äœæã«é¢å¿ãããå Žåã¯ã次ã®ãªã³ã¯ã䜿çšããŠãã ããã
â¢ssbench githubïŒ
github.com/swiftstack/ssbenchâ¢ssbench SwiftStackããã°ïŒ
swiftstack.com/blog/2013/04/18/openstack-summit-benchmarking-swiftâ¢ããã°ã®Swift 1.9.0ïŒ
lists.openstack.org/pipermail/openstack-dev/2013-July/011221.htmlâ¢Swift 1.9.0æ
å ±ïŒ
launchpad.net/swift/+milestone/1.9.0è±èªã®ãªãªãžãã«èšäº