| 170 | | |
| 171 | | |
| 172 | | == Automatic Storage Monitoring == |
| 173 | | |
| 174 | | Cron jobs are set up on all nebulous storage nodes to scan the nebulous disks and construct statistics about their contents. These jobs (calling `ipp/trunk/tools/diskspace/nebulous_data.pl`) are striped across the cluster throughout the week, in an attempt to prevent all hosts running the disk scan simultaneously (which would presumably have an effect on processing throughput). The usage statistics are placed in nebulous in files named `neb://ipp_diskspace/YYYY-MM-DD/ippXXX.Z.neb_usage.dat`, with the date string matching the date of the Sunday of the week the scan was performed. The script parses each filename in the nebulous directory, and attempts to classify the stage it comes from as well as the type of product from that stage. The total count of these files, and the total usage (in bytes) of these files. These totals are what is stored in the statistics files. An excerpt of one of these files is listed below, showing the CHIP stage file statistics from one host. |
| 175 | | {{{ |
| 176 | | CHIP B1FITS 774142 320650755840 |
| 177 | | CHIP B1JPG 71 18789330 |
| 178 | | CHIP B2FITS 775168 34038596160 |
| 179 | | CHIP B2JPG 70 902953 |
| 180 | | CHIP BUNDLE 6649 190039346914 |
| 181 | | CHIP CATALOG 462015 443818370880 |
| 182 | | CHIP FITS 98121 1030044401280 |
| 183 | | CHIP KERNEL 14 6658560 |
| 184 | | CHIP LOG 764083 25942316933 |
| 185 | | CHIP MASK 44888 93167104320 |
| 186 | | CHIP MDC 774856 82952703287 |
| 187 | | CHIP MDL 832113 34001887680 |
| 188 | | CHIP PNG 9838 160628007 |
| 189 | | CHIP PSF 774958 77240390400 |
| 190 | | CHIP PTN 50884 60478741440 |
| 191 | | CHIP SKYCELL 30 86400 |
| 192 | | CHIP STATS 637305 2358654287 |
| 193 | | CHIP TRACE 422839 29600227 |
| 194 | | CHIP WEIGHT 44740 608909785920 |
| 195 | | }}} |
| 196 | | |
| 197 | | At the end of the week, the gpc1 database is polled by `ipp/trunk/tools/diskspace/run_counter.pl` to identify the count of states for each stage, and the results stored in `neb://ipp_diskspace/YYYY-MM-DD/run_im_counts.dat`. This gives the stage, the data_state, and then the count of the number of components with that data_state: |
| 198 | | {{{ |
| 199 | | CHIP cleaned 16945531 |
| 200 | | CHIP error_cleaned 25155 |
| 201 | | CHIP error_scrubbed 5851 |
| 202 | | CHIP full 631356 |
| 203 | | CHIP purged 286850 |
| 204 | | CHIP scrubbed 5993 |
| 205 | | CHIP update 3304 |
| 206 | | }}} |
| 207 | | At the end of the week, a summary file is created (`neb://ipp_diskspace/YYYY-MM-DD/summary.dat`) by `ipp/trunk/tools/nebulous_wiki.pl -S` that gives the usage in TB of each stage/product combination, as well as the count of these products found on disk (faked in this example): |
| 208 | | {{{ |
| 209 | | CHIP_B1FITS 4876.40501260757 999 |
| 210 | | CHIP_B1JPG 5.90300299786031 999 |
| 211 | | CHIP_B2FITS 506.811673343182 999 |
| 212 | | CHIP_B2JPG 0.397686927579343 999 |
| 213 | | CHIP_BTTABLE 0 0 |
| 214 | | CHIP_BUNDLE 2889.25785760116 999 |
| 215 | | CHIP_CATALOG 7536.26382619143 999 |
| 216 | | CHIP_FITS 14993.0452584894 999 |
| 217 | | CHIP_KERNEL 3.89136224985123 999 |
| 218 | | CHIP_LOG 557.324770034291 999 |
| 219 | | CHIP_MASK 1228.97341176867 999 |
| 220 | | CHIP_MDC 1149.67314596102 999 |
| 221 | | CHIP_MDL 501.610046625137 999 |
| 222 | | CHIP_PNG 10.054713034071 999 |
| 223 | | CHIP_PSF 1185.04951536655 999 |
| 224 | | CHIP_PTN 1154.56684827805 999 |
| 225 | | CHIP_SKYCELL 0.0493767857551575 999 |
| 226 | | CHIP_STATS 68.9840127192438 999 |
| 227 | | CHIP_TRACE 5.00015713181347 999 |
| 228 | | CHIP_UNKNOWN 0.0171183617785573 999 |
| 229 | | CHIP_WEIGHT 9193.91913002729 999 |
| 230 | | }}} |
| 231 | | |
| 232 | | This script can also generate the wiki page tables displayed below, showing how each stage/product is distributed across the cluster. |
| 233 | | |
| 234 | | A largely untested final summary should be generated by `ipp/trunk/tools/diskspace/merge_counts_and_sizes.pl` that takes the usage.dat files, the run_im_counts.dat file, and the mapping file (hardcoded as `neb://ipp_diskspace/mappings_im.dat`) to match the sizes in each stage/product and the counts in each stage/data_state, and construct an understanding of how much disk space is being used by permanent products (raw imfiles), transient products (chip stage images), and final output products (stacks). This has been delayed due to other concerns, and an issue with the perl installation on ippbXX. This final summary would then be able to be used to recalculate the table in `trunk/tools/diskspace/sizes_from_counts.pl`. This script takes a list of counts (any of the run_im_counts.dat files), and uses the average sizes for each stage/data_state, and calculates a description of which stages are using the most disk space. In addition, it uses the disk count values to estimate the total usage across the entire cluster. Running this script on the count file from 2011-11-07 yields (in part): |
| 235 | | {{{ |
| 236 | | # ---------based on sizes----- --based on disk sizes/counts-- |
| 237 | | #Stage state type Total usage use/db entry Total usage use/db entry N db entries |
| 238 | | CHIP cleaned PRODUCT 4892.5874 0.000272 146376.502127 0.008123 18020276 |
| 239 | | CHIP error_cleaned PRODUCT 486.8947 0.019349 923.416495 0.036696 25164 |
| 240 | | CHIP error_scrubbed PRODUCT 55.1817 0.009431 145.206937 0.024817 5851 |
| 241 | | CHIP full TRANSIENT 11400.8763 0.021286 36359.449063 0.067885 535603 |
| 242 | | CHIP purged PRODUCT 77.8811 0.000272 2330.047533 0.008123 286850 |
| 243 | | CHIP scrubbed PRODUCT 1.6271 0.000272 48.680407 0.008123 5993 |
| 244 | | CHIP update TRANSIENT 158.6413 0.019349 300.869967 0.036696 8199 |
| 245 | | }}} |
| 246 | | This shows that of the space used by chip (on the disks scanned), 30% is consumed by the permanent output products of previous calculations, etc. There is also a summary printed: |
| 247 | | {{{ |
| 248 | | # Type based on sizes based on disk sizes/counts |
| 249 | | PRODUCT 70191.9236020825 449497.935598959 |
| 250 | | EXTERNAL 27428.9286857136 27428.9286857136 |
| 251 | | TRANSIENT 24491.4957386452 79790.7955015027 |
| 252 | | PERMANENT 109276.660096133 1011708.07967771 |
| 253 | | TOTAL 231389.008122574 1568425.73946388 |
| 254 | | EXP_TOT 231942.681785583 |
| 255 | | }}} |
| 256 | | which displays the calculated sizes used by each of the three classes of products, along with the sum. This sum seems to only be accurate to about 10%, and would certainly be improved by fixing the ippbXX perl issue and fully recalculating the size/count table used. |
| 257 | | |
| 258 | | |
| 259 | | |
| 260 | | |
| 261 | | ---- |
| 262 | | |