aws / aws-sdk-net

The official AWS SDK for .NET. For more information on the AWS SDK for .NET, see our web site:
http://aws.amazon.com/sdkfornet/
Apache License 2.0
2.05k stars 852 forks source link

The response time of GetObjectMetadataAsync is prolonged when the API receives a higher volume of concurrent requests. #3155

Closed vijayshankarpalanichamy closed 6 months ago

vijayshankarpalanichamy commented 8 months ago

Describe the bug

The initial response time for the GetObjectMetadataAsync call exceeds more than 2 minutes, but subsequent requests show a gradual reduction in response time.

Expected Behavior

The GetObjectMetadataAsync method should return the response in less than a second/SLA.

Current Behavior

The initial response time for the GetObjectMetadataAsync call exceeds more than one minute, but subsequent requests show a gradual reduction in response time.

2024-01-22 20:59:00,768 [1] INFO Microsoft.Hosting.Lifetime - Now listening on: https://localhost:7190 2024-01-22 20:59:00,782 [1] INFO Microsoft.Hosting.Lifetime - Now listening on: http://localhost:5084 2024-01-22 20:59:00,790 [1] INFO Microsoft.Hosting.Lifetime - Application started. Press Ctrl+C to shut down. 2024-01-22 20:59:00,794 [1] INFO Microsoft.Hosting.Lifetime - Hosting environment: Development 2024-01-22 20:59:00,796 [1] INFO Microsoft.Hosting.Lifetime - Content root path: C:\Helper\S3WebAPI\ 2024-01-22 21:01:11,637 [25] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete104113 2024-01-22 21:01:11,631 [22] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete104113 2024-01-22 21:01:11,586 [5] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete104113 2024-01-22 21:01:11,586 [11] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete104113 2024-01-22 21:01:11,586 [12] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete104113 2024-01-22 21:01:11,586 [13] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete104118 2024-01-22 21:01:11,730 [16] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete104114 2024-01-22 21:01:11,585 [17] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete104117 2024-01-22 21:01:11,585 [21] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete104117 2024-01-22 21:01:11,586 [8] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete104113 2024-01-22 21:01:11,631 [24] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete104113 2024-01-22 21:01:11,637 [26] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete104114 2024-01-22 21:01:11,585 [27] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete104113 2024-01-22 21:01:11,565 [36] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete103432 2024-01-22 21:01:11,638 [37] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete103316 2024-01-22 21:01:11,707 [38] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete103319 2024-01-22 21:01:11,748 [40] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete103252 2024-01-22 21:01:11,758 [39] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete103202 2024-01-22 21:01:11,769 [41] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete103094 2024-01-22 21:01:11,708 [53] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete102373 2024-01-22 21:01:11,780 [42] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete103121 2024-01-22 21:01:11,789 [44] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete103040 2024-01-22 21:01:11,799 [43] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete103090 2024-01-22 21:01:11,809 [45] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete102887 2024-01-22 21:01:11,818 [46] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete102865 2024-01-22 21:01:11,826 [47] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete102821 2024-01-22 21:01:11,838 [48] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete102846 2024-01-22 21:01:11,849 [49] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete102829 2024-01-22 21:01:11,860 [50] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete102603 2024-01-22 21:01:11,871 [51] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete102537 2024-01-22 21:01:11,883 [52] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete102490 2024-01-22 21:01:11,895 [54] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete102463 2024-01-22 21:01:11,907 [55] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete102399 2024-01-22 21:01:11,921 [56] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete102333 2024-01-22 21:01:11,936 [57] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete102341 2024-01-22 21:01:11,948 [58] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete102352 2024-01-22 21:01:11,982 [59] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete102527 2024-01-22 21:01:11,995 [60] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete102235 2024-01-22 21:01:12,003 [61] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete102255 2024-01-22 21:01:12,013 [62] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete102265 2024-01-22 21:01:12,021 [63] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete102073 2024-01-22 21:01:12,028 [64] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete102076 2024-01-22 21:01:12,037 [65] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete101980 2024-01-22 21:01:12,049 [66] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete103894 2024-01-22 21:01:12,058 [67] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete102268 2024-01-22 21:01:12,067 [68] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete102132 2024-01-22 21:01:12,077 [69] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete102991 2024-01-22 21:01:12,085 [70] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete102123 2024-01-22 21:01:12,093 [71] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete101853 2024-01-22 21:01:12,103 [72] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete102003 2024-01-22 21:01:12,113 [73] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete101546 2024-01-22 21:01:12,122 [74] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete102227 2024-01-22 21:01:12,130 [75] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete101415 2024-01-22 21:01:12,140 [76] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete101869 2024-01-22 21:01:12,150 [77] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete101278 2024-01-22 21:01:12,160 [78] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete101250 2024-01-22 21:01:12,169 [79] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete101300 2024-01-22 21:01:12,177 [80] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete101391 2024-01-22 21:01:12,185 [81] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete102778 2024-01-22 21:01:12,195 [82] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete101795 2024-01-22 21:01:12,205 [83] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete102533 2024-01-22 21:01:12,216 [84] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete101373 2024-01-22 21:01:12,224 [85] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete101167 2024-01-22 21:01:12,233 [86] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete100688 2024-01-22 21:01:12,241 [87] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete100422 2024-01-22 21:01:12,250 [88] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete100626 2024-01-22 21:01:12,261 [89] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete100862 2024-01-22 21:01:12,270 [90] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete101091 2024-01-22 21:01:12,279 [91] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete100434 2024-01-22 21:01:12,288 [92] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete100207 2024-01-22 21:01:12,299 [93] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete99854 2024-01-22 21:01:12,308 [94] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete100150 2024-01-22 21:01:12,317 [95] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete100410 2024-01-22 21:01:12,327 [96] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete100191 2024-01-22 21:01:12,335 [97] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete99670 2024-01-22 21:01:12,345 [98] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete99472 2024-01-22 21:01:12,354 [99] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete99686 2024-01-22 21:01:12,364 [100] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete99572 2024-01-22 21:01:12,374 [101] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete99166 2024-01-22 21:01:12,383 [102] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete99130 2024-01-22 21:01:12,392 [103] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete99119 2024-01-22 21:01:12,402 [104] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete99047 2024-01-22 21:01:12,414 [105] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete98936 2024-01-22 21:01:12,424 [106] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete99772 2024-01-22 21:01:12,434 [107] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete98792 2024-01-22 21:01:12,447 [108] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete98817 2024-01-22 21:01:12,461 [109] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete98811 2024-01-22 21:01:12,475 [110] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete98244 2024-01-22 21:01:12,486 [111] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete98449 2024-01-22 21:01:12,497 [112] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete98065 2024-01-22 21:01:12,507 [113] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete97945 2024-01-22 21:01:12,518 [114] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete98967 2024-01-22 21:01:12,529 [115] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete97792 2024-01-22 21:01:12,540 [116] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete98672 2024-01-22 21:01:12,549 [117] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete97626 2024-01-22 21:01:12,560 [118] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete97781 2024-01-22 21:01:12,570 [119] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete97253 2024-01-22 21:01:12,581 [120] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete96800 2024-01-22 21:01:12,596 [121] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete97203 2024-01-22 21:01:12,606 [122] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete96515 2024-01-22 21:01:12,616 [123] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete97713 2024-01-22 21:01:12,631 [124] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete96152 2024-01-22 21:01:12,642 [125] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete96449 2024-01-22 21:01:12,653 [126] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete96266 2024-01-22 21:01:12,664 [127] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete95559 2024-01-22 21:01:12,677 [128] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete95892 2024-01-22 21:01:12,687 [129] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete95352 2024-01-22 21:01:12,699 [130] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete96120 2024-01-22 21:01:12,713 [131] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete95313 2024-01-22 21:01:12,723 [132] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete95124 2024-01-22 21:01:12,735 [133] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete94645 2024-01-22 21:01:12,749 [134] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete94700 2024-01-22 21:01:12,760 [135] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete94480 2024-01-22 21:01:12,776 [136] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete94023 2024-01-22 21:01:12,787 [137] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete94062 2024-01-22 21:01:12,797 [138] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete93834 2024-01-22 21:01:12,806 [139] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete93647 2024-01-22 21:01:12,817 [140] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete93423 2024-01-22 21:01:12,828 [141] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete93224 2024-01-22 21:01:12,842 [142] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete93541 2024-01-22 21:01:12,855 [143] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete92777 2024-01-22 21:01:12,866 [144] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete92681 2024-01-22 21:01:12,878 [145] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete92330 2024-01-22 21:01:12,894 [146] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete92087 2024-01-22 21:01:12,910 [147] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete92213 2024-01-22 21:01:12,921 [148] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete92449 2024-01-22 21:01:12,934 [149] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete91635 2024-01-22 21:01:12,945 [150] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete91971 2024-01-22 21:01:12,958 [151] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete91153 2024-01-22 21:01:12,970 [152] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete91181 2024-01-22 21:01:12,983 [153] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete91492 2024-01-22 21:01:12,993 [154] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete90375 2024-01-22 21:01:13,003 [155] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete90233 2024-01-22 21:01:13,016 [156] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete89768 2024-01-22 21:01:13,026 [157] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete89769 2024-01-22 21:01:13,037 [158] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete89486 2024-01-22 21:01:13,049 [159] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete89198 2024-01-22 21:01:13,059 [160] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete89197 2024-01-22 21:01:13,069 [161] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete89089 2024-01-22 21:01:13,080 [162] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete88538 2024-01-22 21:01:13,090 [163] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete88077 2024-01-22 21:01:13,099 [164] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete88008 2024-01-22 21:01:13,110 [165] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete88030 2024-01-22 21:01:13,120 [166] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete88054 2024-01-22 21:01:13,131 [167] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete87286 2024-01-22 21:01:13,145 [168] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete87354 2024-01-22 21:01:13,159 [169] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete87047 2024-01-22 21:01:13,171 [170] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete86239 2024-01-22 21:01:13,185 [171] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete86263 2024-01-22 21:01:13,200 [172] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete86520 2024-01-22 21:01:13,213 [173] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete86555 2024-01-22 21:01:13,831 [184] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete85280 2024-01-22 21:01:14,920 [195] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete83075 2024-01-22 21:01:15,563 [197] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete82737 2024-01-22 21:01:15,752 [199] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete83059 2024-01-22 21:01:15,974 [198] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete83857 2024-01-22 21:01:16,478 [200] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete83886 2024-01-22 21:01:16,949 [392] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete15926 2024-01-22 21:01:16,963 [202] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete83847 2024-01-22 21:01:17,506 [208] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete82738 2024-01-22 21:01:17,638 [393] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete15382 2024-01-22 21:01:17,777 [186] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete88873 2024-01-22 21:01:17,913 [213] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete81900 2024-01-22 21:01:18,060 [216] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete81290 2024-01-22 21:01:18,288 [181] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete90488 2024-01-22 21:01:18,470 [214] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete81915 2024-01-22 21:01:18,640 [178] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete91676 2024-01-22 21:01:19,749 [229] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete79554 2024-01-22 21:01:20,280 [180] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete92945 2024-01-22 21:01:20,942 [234] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete79267 2024-01-22 21:01:21,118 [236] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete78776 2024-01-22 21:01:21,180 [237] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete78845 2024-01-22 21:01:21,283 [240] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete78142 2024-01-22 21:01:21,618 [191] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete91326 2024-01-22 21:01:21,702 [188] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete92242 2024-01-22 21:01:21,857 [245] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete77515 2024-01-22 21:01:22,231 [246] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete77422 2024-01-22 21:01:22,441 [251] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete76461 2024-01-22 21:01:22,552 [250] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete76786 2024-01-22 21:01:22,765 [187] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete93315 2024-01-22 21:01:22,833 [203] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete89419 2024-01-22 21:01:22,986 [256] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete75690 2024-01-22 21:01:23,073 [190] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete92959 2024-01-22 21:01:23,198 [257] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete75730 2024-01-22 21:01:23,406 [259] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete75444 2024-01-22 21:01:23,527 [210] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete88253 2024-01-22 21:01:23,858 [261] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete75274 2024-01-22 21:01:23,956 [265] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete74414 2024-01-22 21:01:24,031 [264] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete74691 2024-01-22 21:01:24,336 [267] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete74194 2024-01-22 21:01:24,398 [211] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete88782 2024-01-22 21:01:24,627 [215] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete88102 2024-01-22 21:01:24,942 [273] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete73276 2024-01-22 21:01:25,020 [272] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete73673 2024-01-22 21:01:25,337 [224] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete86485 2024-01-22 21:02:16,234 [388] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete79977 2024-01-22 21:02:19,799 [390] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete81383 2024-01-22 21:02:20,951 [391] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete81520 2024-01-22 21:02:21,314 [204] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete147556 2024-01-22 21:02:22,700 [217] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete145549 2024-01-22 21:02:22,963 [175] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete156890 2024-01-22 21:02:23,173 [179] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete155921 2024-01-22 21:02:24,385 [193] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete152868 2024-01-22 21:02:24,706 [206] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete150290 2024-01-22 21:02:24,770 [207] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete150216 2024-01-22 21:02:25,095 [212] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete149363 2024-01-22 21:02:25,458 [226] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete145937 2024-01-22 21:02:25,621 [221] ERROR S3WebAPI.Controllers.S3BucketProxyController - Total time taken to complete147316

Reproduction Steps

Create a Web API, that validates the given file exists in the S3 Bucket

 [HttpGet]
 public IActionResult Get(string fileName)
 {
     try
     {
         var stopwatch = new Stopwatch();
         stopwatch.Start();
         using var client = new AmazonS3Client("AccessKey", "SecretKey", RegionEndpoint.USEast1);
         GetObjectMetadataRequest request = new()
         {
             BucketName = "{bucketName}",
             Key = $"{fileName}"
         };
         _ = client.GetObjectMetadataAsync(request).Result;
         stopwatch.Stop();
         _logger.LogError(" Total time taken to complete" + stopwatch.ElapsedMilliseconds);
         return Ok(true.ToString());
     }
     catch (Exception ex)
     {
         return BadRequest(ex.Message);                     
     }
 }

Create a console application to make a concurrent to validate whether the file exists or not

public class AWS
{
    static void Main()
    {
       Validate().Wait();
    }
     public static async Task Validate()
     {
         List<string> fileNames = new List<string>();
         /*Generate the 500 file names which exist in S3Bucket */

         List<Task> payloads= new List<Task>();
         foreach (var file in fileNames)
         {
             payloads.Add(ValidateFileExists(Path.GetFileName(file)));            
         }  

         Task.WaitAll(payloads.ToArray());
     }

     private static async Task ValidateFileExists(string fileName)
     {
         var client = new HttpClient();
         var response = await client.GetAsync($"https://localhost:7190/S3BucketProxy?fileName={fileName}");
         Console.WriteLine(response.StatusCode);
    }
}

Possible Solution

No response

Additional Information/Context

No response

AWS .NET SDK and/or Package version used

AWSSDK.S3 3.7.305.14

Targeted .NET Platform

.NET 6.0

Operating System and version

Windows 10

dscpinheiro commented 8 months ago

Are you creating a new S3Client for every request? The SDK will try to resolve credentials every time the client is created, which can be expensive (more details here: https://youtu.be/t3swORUjuBk?t=227).

You can also enable detailed logging, which will display several more request metrics:

AWSConfigs.LoggingConfig.LogTo = LoggingOptions.Console;
AWSConfigs.LoggingConfig.LogMetricsFormat = LogMetricsFormatOption.JSON;
AWSConfigs.LoggingConfig.LogResponses = ResponseLoggingOption.Always;
AWSConfigs.LoggingConfig.LogMetrics = true;

var client = new AmazonS3Client(RegionEndpoint.USEast1);
await client.ListBucketsAsync();

Example output:

INFO|Request metrics: {"properties":{"timings":{"CredentialsRequestTime":1.0308,"RequestSigningTime":41.2121,"HttpRequestTime":366.3895,"ResponseUnmarshallTime":18.4383,"ResponseProcessingTime":52.0191,"ClientExecuteTime":557.5263}}
vijayshankarpalanichamy commented 8 months ago

After adding the below options

AWSConfigs.LoggingConfig.LogTo = LoggingOptions.Console;
AWSConfigs.LoggingConfig.LogMetricsFormat = LogMetricsFormatOption.JSON;
AWSConfigs.LoggingConfig.LogResponses = ResponseLoggingOption.Always;
AWSConfigs.LoggingConfig.LogMetrics = true;

I can observe the supplementary log information below. With these credentials, resolution occurs in less than a second (Injected the credentials VIA DI as singleton), and the ClientExecuteTime and HttpRequestTime are initially higher for some requests but subsequently decrease.

2024-01-23 06:14:45,706 [29] INFO Amazon.S3.AmazonS3Client - Request metrics: {"properties":{"AsyncCall":"True","CanonicalRequest":"HEAD\n/securenotice/20240119/ELG.ELG-6000-D.28537141719.46.pdf\n\nhost:test.s3.amazonaws.com\nuser-agent:aws-sdk-dotnet-coreclr/3.7.305.14 ua/2.0 os/windows#10.0.19045.0 md/ARCH#X64 lang/.NET_Core#6.0.25 md/aws-sdk-dotnet-core#3.7.301.9 api/S3#3.7.305.14 cfg/retry-mode#legacy md/ClientAsync\nx-amz-content-sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\nx-amz-date:20240123T004304Z\n\nhost;user-agent;x-amz-content-sha256;x-amz-date\ne3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","StringToSign":"AWS4-HMAC-SHA256\n20240123T004304Z\n20240123/us-east-1/s3/aws4_request\na6a505fe234ed5b9e268091261098df0f86308b60d6f92e54e44a85f123809f5","ServiceName":"AmazonS3","ServiceEndpoint":"https://test.s3.amazonaws.com/","MethodName":"GetObjectMetadataRequest","AmzId2":"k/U5q0epK8GiF+gFsySe8vll4YIcNTxY3WrMLK1JD0qLP1HCLtc/Yci8HGlQlnCRUM0JF42Ta/CQNEybYSCr1rql/j/461LumqwXssHq5mg=","StatusCode":"OK","BytesProcessed":"156073","AWSRequestID":"PMKVX0YEBFYBXPP3"},"timings":**{"CredentialsRequestTime":0.0164,"RequestSigningTime":0.5998,"HttpRequestTime":101529.2159,"ResponseUnmarshallTime":9.6032,"ResponseProcessingTime":18.1536,"ClientExecuteTime":101574.7077},"counters":{}}**

2024-01-23 06:14:45,706 [287] INFO Amazon.S3.AmazonS3Client - Request metrics: {"properties":{"AsyncCall":"True","CanonicalRequest":"HEAD\n/securenotice/20240119/ELG.ELG-6000-D.28560011692.70.pdf\n\nhost:test.s3.amazonaws.com\nuser-agent:aws-sdk-dotnet-coreclr/3.7.305.14 ua/2.0 os/windows#10.0.19045.0 md/ARCH#X64 lang/.NET_Core#6.0.25 md/aws-sdk-dotnet-core#3.7.301.9 api/S3#3.7.305.14 cfg/retry-mode#legacy md/ClientAsync\nx-amz-content-sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\nx-amz-date:20240123T004304Z\n\nhost;user-agent;x-amz-content-sha256;x-amz-date\ne3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","StringToSign":"AWS4-HMAC-SHA256\n20240123T004304Z\n20240123/us-east-1/s3/aws4_request\n333efdc99ce909b5b7ae982f63a5b84fb44720d1ab65c50ca68c8e6a68b6f774","ServiceName":"AmazonS3","ServiceEndpoint":"https://test.s3.amazonaws.com/","MethodName":"GetObjectMetadataRequest","AmzId2":"TE1AXIW8MubSHLY0iIeFXXcXrtY9LVK0LHVk28fgQd+9gDhaeM3P60WpT6Wq8ZeSLfCZ2/2W8Ljuo3q5lD0P5JfFexKoRACqwp0wBoVXgQ0=","StatusCode":"OK","BytesProcessed":"156073","AWSRequestID":"PMKQ14A3C0VH8MGJ"},"timings":**{"CredentialsRequestTime":0.0645,"RequestSigningTime":2.2847,"HttpRequestTime":101305.5581,"ResponseUnmarshallTime":9.5746,"ResponseProcessingTime":18.1184,"ClientExecuteTime":101350.2818},"counters":{}}**

2024-01-23 06:14:45,706 [13] INFO Amazon.S3.AmazonS3Client - Request metrics: {"properties":{"AsyncCall":"True","CanonicalRequest":"HEAD\n/securenotice/20240119/ELG.ELG-6000-D.28519881948.23.pdf\n\nhost:test.s3.amazonaws.com\nuser-agent:aws-sdk-dotnet-coreclr/3.7.305.14 ua/2.0 os/windows#10.0.19045.0 md/ARCH#X64 lang/.NET_Core#6.0.25 md/aws-sdk-dotnet-core#3.7.301.9 api/S3#3.7.305.14 cfg/retry-mode#legacy md/ClientAsync\nx-amz-content-sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\nx-amz-date:20240123T004303Z\n\nhost;user-agent;x-amz-content-sha256;x-amz-date\ne3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","StringToSign":"AWS4-HMAC-SHA256\n20240123T004303Z\n20240123/us-east-1/s3/aws4_request\ne31ce0313bb5402c2e7c26324959fe35754891758e502d432d1a48548bc4ea7f","ServiceName":"AmazonS3","ServiceEndpoint":"https://test.s3.amazonaws.com/","MethodName":"GetObjectMetadataRequest","AmzId2":"wJmN3IJAdMv5gghp8xXaxGmidaPc4qc0aXBQaiz3DxOOU5htqqu6jeCb1f8UAXJZ6prNp6wAeZy01F4r0RW9SPL5DEDTh4eA1PcsBcFv9bM=","StatusCode":"OK","BytesProcessed":"156073","AWSRequestID":"PMKX9YTW0QW0SD3Z"},"timings":**{"CredentialsRequestTime":2.2225,"RequestSigningTime":72.3547,"HttpRequestTime":102277.0406,"ResponseUnmarshallTime":9.6678,"ResponseProcessingTime":18.1723,"ClientExecuteTime":102662.3931},"counters":{}}**

After some 100th request processing the

2024-01-23 06:14:53,441 [310] INFO Amazon.S3.AmazonS3Client - Request metrics: {"properties":{"AsyncCall":"True","CanonicalRequest":"HEAD\n/securenotice/20240119/ELG.ELG-6000-D.28819973578.338.pdf\n\nhost:test.s3.amazonaws.com\nuser-agent:aws-sdk-dotnet-coreclr/3.7.305.14 ua/2.0 os/windows#10.0.19045.0 md/ARCH#X64 lang/.NET_Core#6.0.25 md/aws-sdk-dotnet-core#3.7.301.9 api/S3#3.7.305.14 cfg/retry-mode#legacy md/ClientAsync\nx-amz-content-sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\nx-amz-date:20240123T004348Z\n\nhost;user-agent;x-amz-content-sha256;x-amz-date\ne3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","StringToSign":"AWS4-HMAC-SHA256\n20240123T004348Z\n20240123/us-east-1/s3/aws4_request\n6f0411d26b19d5f577139ba17ef46766ab1e0c341a73a5f325839c473c99ba32","ServiceName":"AmazonS3","ServiceEndpoint":"https://test.s3.amazonaws.com/","MethodName":"GetObjectMetadataRequest","AmzId2":"kDlqPmjroa0qW72yU+6L0lYQbKaUraoVsYmuR9gnWNheE8eEt9C9H5lXplLnEeQtEIWZzhQbURbGgq0HGwufSU6p+qZHjuXxStUe7SGTwHo=","StatusCode":"OK","BytesProces**sed":"156073","AWSRequestID":"P15E93ZW3TK0B1Y7"},"timings":{"CredentialsRequestTime":0.0011,"RequestSigningTime":0.199,"HttpRequestTime":64876.6823,"ResponseUnmarshallTime":0.0168,"ResponseProcessingTime":8.4798,"ClientExecuteTime":64885.7906},"counters":{}}**

dscpinheiro commented 8 months ago

Do you also see high ClientExecuteTime and HttpRequestTime if not blocking in your Web API controller? For example:

[HttpGet]
public async Task<IActionResult> Get(string fileName)
{
    try
    {
        var stopwatch = new Stopwatch();
        stopwatch.Start();

        await s3Client.GetObjectMetadataAsync(new GetObjectMetadataRequest 
        {
            BucketName = "{bucketName}",
            Key = $"{fileName}"
        });

        stopwatch.Stop();
        _logger.LogError(" Total time taken to complete" + stopwatch.ElapsedMilliseconds);

        return Ok(true.ToString());
    }
    catch (Exception ex)
    {
        return BadRequest(ex.Message);
    }
}
vijayshankarpalanichamy commented 8 months ago

@dscpinheiro Yes I see the high ClientExecuteTime and HttpRequestTime, please find the same in the below log

2024-01-23 06:14:45,706 [29] INFO Amazon.S3.AmazonS3Client - Request metrics: {"properties":{"AsyncCall":"True","CanonicalRequest":"HEAD\n/securenotice/20240119/ELG.ELG-6000-D.28537141719.46.pdf\n\nhost:test.s3.amazonaws.com\nuser-agent:aws-sdk-dotnet-coreclr/3.7.305.14 ua/2.0 os/windows#10.0.19045.0 md/ARCH#X64 lang/.NET_Core#6.0.25 md/aws-sdk-dotnet-core#3.7.301.9 api/S3#3.7.305.14 cfg/retry-mode#legacy md/ClientAsync\nx-amz-content-sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\nx-amz-date:20240123T004304Z\n\nhost;user-agent;x-amz-content-sha256;x-amz-date\ne3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","StringToSign":"AWS4-HMAC-SHA256\n20240123T004304Z\n20240123/us-east-1/s3/aws4_request\na6a505fe234ed5b9e268091261098df0f86308b60d6f92e54e44a85f123809f5","ServiceName":"AmazonS3","ServiceEndpoint":"https://test.s3.amazonaws.com/","MethodName":"GetObjectMetadataRequest","AmzId2":"k/U5q0epK8GiF+gFsySe8vll4YIcNTxY3WrMLK1JD0qLP1HCLtc/Yci8HGlQlnCRUM0JF42Ta/CQNEybYSCr1rql/j/461LumqwXssHq5mg=","StatusCode":"OK","BytesProcessed":"156073","AWSRequestID":"PMKVX0YEBFYBXPP3"},"timings":**{"CredentialsRequestTime":0.0164,"RequestSigningTime":0.5998,**"HttpRequestTime":101529.2159**,"ResponseUnmarshallTime":9.6032,"ResponseProcessingTime":18.1536,**"ClientExecuteTime":101574.7077}**,"counters":{}}

vijayshankarpalanichamy commented 6 months ago

I am able to resolve this issue, by changing the client.GetObjectMetadataAsync(request).Result; as await _amazonS3.GetObjectMetadataAsync(request).WaitAsync(TimeSpan.FromMinutes(2)); and the return as async Task

[HttpGet]
 public **async Task<IActionResult>** Get(string fileName)
 {
     try
     {
         var stopwatch = new Stopwatch();
         stopwatch.Start();
         using var client = new AmazonS3Client("AccessKey", "SecretKey", RegionEndpoint.USEast1);
         GetObjectMetadataRequest request = new()
         {
             BucketName = "{bucketName}",
             Key = $"{fileName}"
         };
         **await _amazonS3.GetObjectMetadataAsync(request).WaitAsync(TimeSpan.FromMinutes(2));**
         stopwatch.Stop();
         _logger.LogError(" Total time taken to complete" + stopwatch.ElapsedMilliseconds);
         return Ok(true.ToString());
     }
     catch (Exception ex)
     {
         return BadRequest(ex.Message);                     
     }
 }
github-actions[bot] commented 6 months ago

Comments on closed issues are hard for our team to see. If you need more assistance, please either tag a team member or open a new issue that references this one. If you wish to keep having a conversation with other community members under this issue feel free to do so.