|
|
(24 intermediate revisions by 5 users not shown) |
Line 1: |
Line 1: |
− | [[Main Page]] > [[Development roadmap]] > Scalability testing | + | [[Main Page]] > Scalability testing |
| | | |
− | = Test File Sets = | + | = Objectives = |
− | [http://archivematica.org/downloads/docZips/ Test Documents]
| |
| | | |
− | = Test design =
| + | '''1. set up a dedicated testing environment''' |
| + | <br> |
| + | The testing environment will start with 5 virtual machines set up in a hosted environment, where hardware resources can be scaled up and down between tests. It is expected that the test environment will be ready to use by January 15th. |
| + | [[Test Environment Documentation]] |
| | | |
− | Maximums to test for:
| |
− | *Max number of SIPS - 10
| |
− | *Max number of files in SIP - 10,000
| |
− | *Max size of individual file - 30 GiB
| |
− | *Max size of SIP - 100 GiB
| |
| | | |
− | Baseline amounts:
| + | '''2. develop a new initial repeatable test suite''' |
− | * number of SIPS - 1
| + | <br>Initial tests will focus on two main areas - file io and documenting individual micro-service performance. Data will be collected from external monitoring tools as well as from internal instrumentation. |
− | * number of files in SIP - 10
| |
− | * size of individual file - 1 MiB
| |
− | * size of SIP - 100 MiB
| |
| | | |
− | {| class="wikitable"
| + | External monitoring will be done with two open source packages, munin and collectd. This will provide data at the operating system level. |
− | |-
| + | Internal instrumentation already exists within the Archivematica source code, where each step in the process has a start time and end time recorded in the local database. This instrumentation will be extended and refined during the buildout of the test suite. The data collected will be used to identify which specific micro-services, and which steps within those micro-services are taking the longest time to complete. |
− | ! Test
| |
− | ! No. of SIPs
| |
− | ! No. of files in SIP
| |
− | ! Max size of individual file
| |
− | ! Max size of SIP
| |
− | |-
| |
− | | 1. Baseline Test
| |
− | | 1
| |
− | | 10
| |
− | | 1 MiB
| |
− | | 100 MiB
| |
− | |-
| |
− | | 2. No. of SIPs
| |
− | | '''10'''
| |
− | | 10
| |
− | | 1 MiB
| |
− | | 100 MiB
| |
− | |-
| |
− | | 3. No. of files
| |
− | | 1
| |
− | | '''10,000'''
| |
− | | 1 MiB
| |
− | | 100 MiB
| |
− | |-
| |
− | | 4. Max file size
| |
− | | 1
| |
− | | 10
| |
− | | '''30 GiB'''
| |
− | | 100 MiB
| |
− | |-
| |
− | | 5. Max SIP size
| |
− | | 1
| |
− | | 10
| |
− | | 1 MiB
| |
− | | '''100 GiB'''
| |
− | |-
| |
− | | ...
| |
− | |
| |
− | |
| |
− | |
| |
− | |
| |
− | |}
| |
| | | |
− | *Other tests: combination of maximums
| + | '''3. document a full matrix of test parameters''' |
| + | <br>Archivematica workflow can vary considerably depending on use case. Artefactual will document all testing efforts on this wiki, building out a matrix of test cases. For example, we expect that adding additional storage subsystem capacity will allow for linear growth in scalability (add more disks, it should all go faster). This will be one of the first 'columns' in our test matrix, repeating tests with the same workload, changing the capacity (maximum io's per second) of the storage subsystem between tests. |
| | | |
− | = CVA tests =
| + | Initial tests will focus on the 4 primary stages in the Archivematica workflow - Transfer, Ingest, creation of SIP, creation of AIP. There are additional steps required, both before Transfer, and after creation of AIP, however these steps do not necessarily involve the use of Archivematica code. For example, moving digital objects to a shared folder that Archivematica can access is a prerequisite of the Transfer stage, and can take a considerable amount of time. We will document best practices for how to complete that work after initial scalability testing is complete. |
| | | |
− | System setup:
| + | '''4. repeat test suite at customer sites''' |
| + | <br>The two initial customer sites have been identified by Archivematica and tests will be repeated at both customer sites. |
| | | |
− | *Bare-metal install, 1 processor
| + | = Test Structure = |
− | *2 cores
| |
− | *4GB ram 9 GB swap
| |
− | *xubuntu
| |
| | | |
− | Note: excludes store AIP and upload DIP micro-services except where noted
| + | Scalability testing is done using a scripted workload, where all decision points, that are normally left to the Archivist to make using the Dashboard, are instead automated through the use of a configuration file. This allows for repeatable test cases. Example test scripts will be posted here over the coming weeks. |
| | | |
| | | |
− | {| border="1" cellpadding="10" cellspacing="0" width=90%
| + | = Test File Sets = |
− | |-
| + | [http://archivematica.org/downloads/docZips/ Test Documents] |
− | !Test date
| |
− | !No. transfers/SIPs
| |
− | !No. files
| |
− | !Total file size
| |
− | !Largest file size
| |
− | !AIP size
| |
− | !Total time
| |
− | !Comments
| |
− | |-
| |
− | |2011/11/10
| |
− | |1/1
| |
− | |1,000
| |
− | |12.1 GB
| |
− | |60 MB
| |
− | |
| |
− | |
| |
− | |
| |
− | *Failed at prepareAIP due to max Bag size: <strike>Issue 785</strike>
| |
− | *Failed at uploadDIP due to max post size limit in ica-atom (8M).
| |
− | |-
| |
− | |2011/11/10
| |
− | |1/1
| |
− | |1
| |
− | |2.7 GB
| |
− | |2.7 GB
| |
− | |
| |
− | |
| |
− | |Failed at prepareAIP due to max Bag size: <strike>Issue 785</strike>
| |
− | |-
| |
− | |2011/11/18
| |
− | |1/1
| |
− | |1,000
| |
− | |12.1 GB
| |
− | |60 MB
| |
− | |7.2 GB
| |
− | |4 hrs 30 mins
| |
− | |Access normalization only
| |
− | |-
| |
− | |2011/12/02
| |
− | |2/2
| |
− | |1,998
| |
− | |13 GB
| |
− | |21 MB
| |
− | |
| |
− | |
| |
− | |Access normalization only
| |
− | |-
| |
− | |2011/12/11
| |
− | |1/1
| |
− | |1,000
| |
− | |6.51 GB
| |
− | |21 MB
| |
− | |3.5 GB
| |
− | |
| |
− | |Access normalization only
| |
− | |-
| |
− | |2011/12/11
| |
− | |2/2
| |
− | |1,996
| |
− | |13.8 GB
| |
− | |27 MB
| |
− | |7.2 GB
| |
− | |
| |
− | |Access normalization only
| |
− | |-
| |
− | |2011/12/13
| |
− | |3/3
| |
− | |2,974
| |
− | |18.6 GB
| |
− | |20 MB
| |
− | |10.3 GB
| |
− | |3 hrs 19 mins
| |
− | |Access normalization only
| |
− | |-
| |
− | |2011/12/14
| |
− | |4/4
| |
− | |3,993
| |
− | |24.6 GB
| |
− | |22 MB
| |
− | |13.2 GB
| |
− | |3 hrs 16 mins
| |
− | |Access normalization only
| |
− | |-
| |
− | |2011/12/15
| |
− | |4/4
| |
− | |3,982
| |
− | |43 GB
| |
− | |12 MB
| |
− | |15 GB
| |
− | |3 hrs 30 mins
| |
− | |Access normalization only
| |
− | |-
| |
− | |2011/12/15
| |
− | |6/6
| |
− | |5,113
| |
− | |34.1 GB
| |
− | |38 MB
| |
− | |19.8 GB
| |
− | |4 hrs 2 mins
| |
− | |Access normalization only
| |
− | |-
| |
− | |2012/01/04
| |
− | |6/6
| |
− | |5,845
| |
− | |42.4 GB
| |
− | |33 MB
| |
− | |24 GB
| |
− | |3 hrs 52 mins
| |
− | |Access normalization only
| |
− | |-
| |
− | |2012/01/05
| |
− | |3/3
| |
− | |2,957
| |
− | |20.9 GB
| |
− | |45 MB
| |
− | |13.6 GB
| |
− | |4 hrs
| |
− | |Access normalization only
| |
− | |-
| |
− | |2012/01/05
| |
− | |6/6
| |
− | |'''5,947'''
| |
− | |33 GB
| |
− | |52 MB
| |
− | |19.2 GB
| |
− | |4 hrs 47 mins
| |
− | |Access normalization only
| |
− | |-
| |
− | |2012/01/12
| |
− | |6/6
| |
− | |4,847
| |
− | |38.5 GB
| |
− | |58 MB
| |
− | |23.2 GB
| |
− | |4 hrs 43 mins
| |
− | |Access normalization only
| |
− | |-
| |
− | |2012/01/13
| |
− | |6/6
| |
− | |5,912
| |
− | |101.6 GB
| |
− | |175 MB
| |
− | |63.8 GB
| |
− | |'''8 hrs 53 mins'''
| |
− | |Access normalization only
| |
− | |-
| |
− | |2012/01/17
| |
− | |1/1
| |
− | |1
| |
− | |1.4 GB
| |
− | |1.4 GB
| |
− | |0.6 GB
| |
− | |25 mins
| |
− | |Access normalization only
| |
− | |-
| |
− | |2012/01/17
| |
− | |5/5
| |
− | |23
| |
− | |19.7 GB
| |
− | |2.1 GB
| |
− | |19 GB
| |
− | |4 hrs 1 min
| |
− | |Access normalization only
| |
− | |-
| |
− | |2012/01/18
| |
− | |2/2
| |
− | |2
| |
− | |3.8 GB
| |
− | |2.1 GB
| |
− | |3.7 GB
| |
− | |1 hr 11 mins
| |
− | |Access normalization only
| |
− | |-
| |
− | |2012/01/20
| |
− | |6/6
| |
− | |14
| |
− | |6.1 GB
| |
− | |1.3 GB
| |
− | |5.9 GB
| |
− | |48 mins
| |
− | |Access normalization only
| |
− | |-
| |
− | |2012/02/07
| |
− | |5/5
| |
− | |5
| |
− | |56.7 GB
| |
− | |'''25.4 GB'''
| |
− | |55.5 GB
| |
− | |4 hrs 51 mins
| |
− | |No normalization
| |
− | |-
| |
− | |2012/02/08
| |
− | |5/5
| |
− | |10
| |
− | |'''124.4 GB'''
| |
− | |23.8 GB
| |
− | |'''122.2 GB'''
| |
− | |8 hrs 21 mins
| |
− | |No normalization
| |
− | |-
| |
− | |2012/02
| |
− | |1/1
| |
− | |1044
| |
− | |7.5 GB
| |
− | |12.4 MB
| |
− | |32.8 GB
| |
− | |>16 hrs
| |
− | |Preservation and access normalization
| |
− | |-
| |
− | |2012/02
| |
− | |1/1
| |
− | |104
| |
− | |611.6 MB
| |
− | |7.1 MB
| |
− | |2.58 GB
| |
− | |<2 hrs
| |
− | |Preservation and access normalization
| |
− | |-
| |
− | |2012/02
| |
− | |1/1
| |
− | |2125
| |
− | |47.1 GB
| |
− | |35.9 MB
| |
− | |46.2 GB
| |
− | |>24 hrs
| |
− | |Preservation and access normalization
| |
− | |-
| |
− | |2012/03
| |
− | |1/1
| |
− | |1654
| |
− | |7.9 GB
| |
− | |11.7 MB
| |
− | |37.7 GB
| |
− | |>16 hrs
| |
− | |Preservation and access normalization
| |
− | |-
| |
− | |2012/03
| |
− | |1/1
| |
− | |1195
| |
− | |5.7 GB
| |
− | |9.9 MB
| |
− | |26.8 GB
| |
− | |>12 hrs
| |
− | |Preservation and access normalization
| |
− | |-
| |
− | |2012/03/22
| |
− | |1/1
| |
− | |
| |
− | |11.0 GB
| |
− | |246.3 MB
| |
− | | GB
| |
− | |
| |
− | |Preservation and access normalization
| |
− | |-
| |
− | |2012/03/22
| |
− | |1/1
| |
− | |
| |
− | |6.7 GB
| |
− | |9.7 MB
| |
− | | GB
| |
− | |
| |
− | |Preservation and access normalization
| |
− | |-
| |
− | |2012/03/26
| |
− | |1/1
| |
− | |
| |
− | |6.6 GB
| |
− | |14.3 MB
| |
− | | GB
| |
− | |
| |
− | |Preservation and access normalization
| |
− | |-
| |
− | |2012/03
| |
− | |1/1
| |
− | |
| |
− | |18.1 GB
| |
− | |11.7 MB
| |
− | |
| |
− | |
| |
− | |Preservation and access normalization
| |
− | |-
| |
− | |}
| |
− | </br>
| |
− | | |
− | = Multi-processor testing =
| |
− | | |
− | == Problem statement ==
| |
− | | |
− | *Does the amount of processing time decrease for each additional processing station added?
| |
− | *If yes, by how much?
| |
− | | |
− | == Constants and variables ==
| |
− | | |
− | Constants:
| |
− | *Ram amount
| |
− | *Ram speed
| |
− | *Disk size
| |
− | *Cpu frequency
| |
− | | |
− | Variables:
| |
− | *Number of clients
| |
− | *Number of transfer(s)
| |
− | *Size of transfer(s)
| |
− | *Number of files(s)
| |
− | | |
− | Ideal network for testing network consists of 6nodes+ each with dual core processor, 2GB+ memory, and 6GB+ disk space. Due to limited disk capacity, current tests are running with 5 nodes.
| |
− | | |
− | == Testing data ==
| |
− | | |
− | *All testing data will be be preserved for analysis. Select data will be reported on this wiki.
| |
− | | |
− | == Network setup ==
| |
− | {| class="wikitable"
| |
− | |-
| |
− | ! HOSTNAME
| |
− | ! Processor
| |
− | ! Memory
| |
− | ! Disk/s Size
| |
− | ! IP
| |
− | ! Filesystem
| |
− | ! Services
| |
− | ! Network Connection Speed
| |
− | ! Ram speed/timing
| |
− | ! Shared directory disk write speed
| |
− | ! Shared directory disk read speed
| |
− | |-
| |
− | | test01server
| |
− | | 4x500mhz
| |
− | | 2048mb
| |
− | | 6GB+35GB
| |
− | | 10.10.0.1
| |
− | | ext4
| |
− | | MCPServer,MySQL,NFS,MCPClient
| |
− | |-
| |
− | | test01client01
| |
− | | 2x500mhz
| |
− | | 1024mb
| |
− | | 6GB
| |
− | | 10.10.0.11
| |
− | | ext4,NFS
| |
− | | MCPClient
| |
− | |-
| |
− | | test01client02
| |
− | | 2x500mhz
| |
− | | 1024mb
| |
− | | 6GB
| |
− | | 10.10.0.12
| |
− | | ext4,NFS
| |
− | | MCPClient
| |
− | |-
| |
− | | test01client03
| |
− | | 2x500mhz
| |
− | | 1024mb
| |
− | | 6GB
| |
− | | 10.10.0.12
| |
− | | ext4,NFS
| |
− | | MCPClient
| |
− | |-
| |
− | | test01client04
| |
− | | 2x500mhz
| |
− | | 1024mb
| |
− | | 6GB
| |
− | | 10.10.0.14
| |
− | | ext4,NFS
| |
− | | MCPClient
| |
− | |}
| |
− | | |
− | == Testing metrics ==
| |
− | Our results are derived from running 000.zip through the archivematica pipe line, and then extracting MYSQL- timing views from the database. This gives us a clearer picture of productivity of clients.
| |
− | | |
− | To extract testing data, run the following on the command line(test0001.log being the output file name):
| |
− | <pre>
| |
− | mysql MCP -e "select * from PDI_by_unit; select * from processingDurationInformation;" > test0001.log
| |
− | </pre>
| |
− | | |
− | you should get a file(test0001.log) containing something like:
| |
− | <pre>
| |
− | SIP_OR_TRANSFER_UUID unitType Total time processing Number_of_tasks Average time per task total file size number of files count( DISTINCT FilesByUnit.fileUUID) average file size KB average file size MB time per task per MB currentLocation currentPath
| |
− | 032dc1ee-de1e-486b-b43e-d5602b4bc986 Transfer 838:59:59 4928 00:47:39 758373178 980 980 773.85018163 0.77385018 01:01:35 %sharedPath%watchedDirectories/SIPCreation/completedTransfers/000-88-032dc1ee-de1e-486b-b43e-d5602b4bc986/ NULL
| |
− | ca229fa8-073b-4bd3-980e-ced7e810c5d3 SIP 133:07:00 991 00:08:04 758373178 980 980 773.85018163 0.77385018 00:10:25 NULL %sharedPath%watchedDirectories/workFlowDecisions/createDip/000-88-ca229fa8-073b-4bd3-980e-ced7e810c5d3/
| |
− | SIP_OR_TRANSFER_UUID client Time_spent_in_system Time_spent_processing Number_of_tasks currentLocation currentPath
| |
− | 09210bef-9053-44b4-8a95-e1a4022826eb server_1 00:00:01 00:00:01 1 NULL NULL
| |
− | 4c500821-6e7c-4bc2-8087-73b6e7002078 server_1 00:00:00 00:00:00 1 NULL NULL
| |
− | def33d3e-1bc8-4a14-ab5f-c06d3e2475a5 server_4 00:00:00 00:00:00 1 NULL NULL
| |
− | 032dc1ee-de1e-486b-b43e-d5602b4bc986 server_1 01:16:23 03:59:35 4928 %sharedPath%watchedDirectories/SIPCreation/completedTransfers/000-88-032dc1ee-de1e-486b-b43e-d5602b4bc986/ NULL
| |
− | ca229fa8-073b-4bd3-980e-ced7e810c5d3 client04_1 00:01:55 00:08:09 991 NULL %sharedPath%watchedDirectories/workFlowDecisions/createDip/000-88-ca229fa8-073b-4bd3-980e-ced7e810c5d3/
| |
− | </pre>
| |
− | | |
− | == Test results ==
| |
| | | |
− | scalabilityTest1-2012-04-25.log
| + | = Archived Scalability Test Results = |
− | <pre>
| + | Historical test results are available [[Archived Scalability Test Results]] |
− | SIP_OR_TRANSFER_UUID unitType Total time processing Number_of_tasks Average time per task total file size number of files count( DISTINCT FilesByUnit.fileUUID) average file size KB average file size MB time per task per MB currentLocation currentPath
| |
− | 08101036-f8c4-48bf-9a68-c011027025b8 Transfer 838:59:59 4928 00:50:51 758373178 980 980 773.85018163 0.77385018 01:05:43 %sharedPath%watchedDirectories/SIPCreation/completedTransfers/000-d5-08101036-f8c4-48bf-9a68-c011027025b8/ NULL
| |
− | bae7519d-8331-4f61-883d-d9a6365e80b9 SIP 838:59:59 7824 00:14:44 983589414 1290 1290 762.47241395 0.76247241 00:19:19 NULL %sharedPath%failed/000-d5-bae7519d-8331-4f61-883d-d9a6365e80b9/
| |
− | SIP_OR_TRANSFER_UUID client Time_spent_in_system Time_spent_processing Number_of_tasks currentLocation currentPath
| |
− | 032dc1ee-de1e-486b-b43e-d5602b4bc986 server_1 00:00:00 00:00:00 1 NULL NULL
| |
− | def33d3e-1bc8-4a14-ab5f-c06d3e2475a5 server_2 00:00:00 00:00:00 1 NULL NULL
| |
− | e2ce026d-9c1c-4aae-85ae-5801b1987182 server_4 00:00:00 00:00:00 1 NULL NULL
| |
− | e367db20-2644-4130-be99-c7b530f53c21 server_3 00:00:00 00:00:00 1 NULL NULL
| |
− | 09210bef-9053-44b4-8a95-e1a4022826eb server_3 00:00:00 00:00:00 1 NULL NULL
| |
− | 4c500821-6e7c-4bc2-8087-73b6e7002078 server_3 00:00:00 00:00:00 1 NULL NULL
| |
− | 08101036-f8c4-48bf-9a68-c011027025b8 server_3 11:58:14 04:15:43 4928 %sharedPath%watchedDirectories/SIPCreation/completedTransfers/000-d5-08101036-f8c4-48bf-9a68-c011027025b8/ NULL
| |
− | bae7519d-8331-4f61-883d-d9a6365e80b9 server_4 00:41:38 01:29:21 7824 NULL %sharedPath%failed/000-d5-bae7519d-8331-4f61-883d-d9a6365e80b9/
| |
− | </pre>
| |
Main Page > Scalability testing
Objectives[edit]
1. set up a dedicated testing environment
The testing environment will start with 5 virtual machines set up in a hosted environment, where hardware resources can be scaled up and down between tests. It is expected that the test environment will be ready to use by January 15th.
Test Environment Documentation
2. develop a new initial repeatable test suite
Initial tests will focus on two main areas - file io and documenting individual micro-service performance. Data will be collected from external monitoring tools as well as from internal instrumentation.
External monitoring will be done with two open source packages, munin and collectd. This will provide data at the operating system level.
Internal instrumentation already exists within the Archivematica source code, where each step in the process has a start time and end time recorded in the local database. This instrumentation will be extended and refined during the buildout of the test suite. The data collected will be used to identify which specific micro-services, and which steps within those micro-services are taking the longest time to complete.
3. document a full matrix of test parameters
Archivematica workflow can vary considerably depending on use case. Artefactual will document all testing efforts on this wiki, building out a matrix of test cases. For example, we expect that adding additional storage subsystem capacity will allow for linear growth in scalability (add more disks, it should all go faster). This will be one of the first 'columns' in our test matrix, repeating tests with the same workload, changing the capacity (maximum io's per second) of the storage subsystem between tests.
Initial tests will focus on the 4 primary stages in the Archivematica workflow - Transfer, Ingest, creation of SIP, creation of AIP. There are additional steps required, both before Transfer, and after creation of AIP, however these steps do not necessarily involve the use of Archivematica code. For example, moving digital objects to a shared folder that Archivematica can access is a prerequisite of the Transfer stage, and can take a considerable amount of time. We will document best practices for how to complete that work after initial scalability testing is complete.
4. repeat test suite at customer sites
The two initial customer sites have been identified by Archivematica and tests will be repeated at both customer sites.
Test Structure[edit]
Scalability testing is done using a scripted workload, where all decision points, that are normally left to the Archivist to make using the Dashboard, are instead automated through the use of a configuration file. This allows for repeatable test cases. Example test scripts will be posted here over the coming weeks.
Test File Sets[edit]
Test Documents
Archived Scalability Test Results[edit]
Historical test results are available Archived Scalability Test Results