چرا کاربرها قطعیها رو طولانیتر حس میکنن
خلاصهٔ کاملتر
تو این پست، مارک بروکر مهندس AWS با دو مثال ساده نشون میده عددی که تیم فنی از سرویسش میبینه با چیزی که کاربر حس میکنه یکی نیست. سرویسی که میانگین پاسخش ۱۰۰ میلیثانیهست، کاربرش میگه بهطور میانگین یک ثانیه منتظر میمونه؛ سرویسی که MTTR کمتر از یک دقیقه داره، کاربرش میگه قطعیها یک ساعت طول میکشن. به گفتهٔ نویسنده، تو هر دو مثال هر دو طرف راست میگن.
دلیلش اینه که تیم فنی زمان رو بر حسب تعداد درخواست یا تعداد قطعی میشمره، ولی کاربر بر حسب ثانیه و دقیقه؛ یک قطعی طولانی چند بار جلوی چشم کاربرها میاد و تعداد این تجربهها متناسب با طول قطعیه، در حالی که تو آمار سرویس فقط یک رخداد حساب میشه. اسم فنی این ماجرا پارادوکس بازرسی (inspection paradox) هست: کاربر توزیع تأخیر رو با وزنِ زمان تجربه میکنه، نه خودِ توزیع رو.
فرمولش هم پیچیده نیست: اگه میانگین سرویس E[X] باشه، چیزی که کاربر حس میکنه E[X^2] / (2 E[X]) درمیاد، یعنی نصفِ مجموعِ میانگین و نسبتِ واریانس به میانگین. نویسنده مثال میزنه: با میانهٔ ۳۰ دقیقه و p99 برابر ۶۰۰ دقیقه، MTTR کمی بیشتر از یک ساعته ولی تجربهٔ کاربر حدود شش ساعت درمیاد. شبیهسازی کوتاه زیر هم همینو نشون میده: هر قطعی چند بار نمونهبرداری میشه و هر نمونه با زمان باقیموندهٔ قطعی وزن میگیره.
for i in range(samples):
this_outage = random.lognormvariate(failure_mu, failure_sigma)
server_saw_times.append(this_outage)
t = 0.0
while True:
next_arrival = random.expovariate(client_arrival_rate)
if t + next_arrival > this_outage:
break
client_saw_times.append(this_outage - t)
t += next_arrivalجمعبندی نویسنده اینه که سنگینی دُم توزیع خیلی بیشتر از چیزی که فکر میکنیم اهمیت داره. برای زمان پاسخ، تایماوت و ریتری میتونه بخشی از تأخیر دُم رو پنهون کنه، ولی برای زمان بازیابی چنین راهی وجود نداره. به همین خاطر نویسنده با معیارهای بریده مثل trimmed mean هم میونهٔ خوبی نداره: این معیارها دقیقاً همون بخشی از توزیع رو دور میریزن که تجربهٔ کاربر رو میسازه.
نکات کلیدی:
- کاربر میانگین سرویس رو تجربه نمیکنه، نسخهٔ وزندارشده با زمان رو تجربه میکنه
- فاصلهٔ MTTR با تجربهٔ کاربر متناسب با نسبت واریانس به میانگینه
- با میانهٔ ۳۰ دقیقه و p99 دهساعته، یک MTTR یکساعته برای کاربر حدود شش ساعت حس میشه
- تایماوت و ریتری تأخیر دُم رو تا حدی پنهون میکنه، ولی زمان بازیابی رو نه
- میانگینهای بریده شکل دُم راستِ توزیع رو دور میریزن، یعنی دقیقاً همون بخشی که تجربهٔ کاربره




