تحلیل جامع خطا 504 Gateway Timeout

بررسی فنی و عمیق علل خطا 504 Gateway Timeout در فضاهای Hugging Face از منظر تمام اجزای مرتبط از جمله APIها، پیکربندی‌های CloudFront، اتصالات داخلی و لاگ‌های سرور

۱ هفته
بازه زمانی تحقیق
۳۰ ثانیه
زمان انتظار پیش‌فرض
۵۰۴
کد خطای گیت‌وی

مقدمه: درک خطا 504 Gateway Timeout

خطای 504 Gateway Timeout در Hugging Face معمولاً نشان‌دهنده این است که روتر گیت‌وی (gateway) برای دریافت پاسخ از سمت سرور بالادست بیش از حد منتظر مانده است. این خطا می‌تواند ناشی از مشکلات متعددی باشد از جمله تأخیر در سرورهای داخلی، مشکلات اتصال شبکه، یا پیکربندی‌های نادرست در لایه‌های مختلف زیرساخت.

تایم‌اوت در اسپیس‌ها به‌طور واقعی‌گرایانه برای جلوگیری از آویزان ماندن درخواست‌ها در صورت کرش شدن فضای اجرایی طراحی شده است.

نمودار سیستمی از زیرساخت Hugging Face با نمایش سه لایه افقی اصلی: لایه مشتری در بالا با نماد مرورگر سفید روی پس‌زمینه آبی روشن، لایه گیت‌وی در وسط با نماد سرور آبی تیره با نوشته 'Gateway' و فلش‌های دوتایی نشان‌دهنده ارتباط داده، و لایه سرورهای داخلی در پایین با سه سرور بنفش روشن با نوشته‌های 'Origin Server 1'، 'Origin Server 2'، و 'Origin Server 3'. خطوط ارتباطی بین لایه‌ها با رنگ آبی متوسط و علامت تعجب قرمز روی خط اتصال بین گیت‌وی و سرورهای بالادست نشان‌دهنده خطا 504. عناصر با فونت سنس‌سریف فارسی و رنگ‌های اصلی آبی (#1a73b3) و بنفش (#6366f1) برای حفظ اتساق با پالت رنگی صفحه.

ارتباط گیت‌وی

گیت‌وی منتظر پاسخ از سرور بالادست می‌ماند و در صورت عدم دریافت پاسخ در زمان تعیین‌شده، خطا را بازگرداند

پیکربندی‌های شبکه

تنظیمات زمان انتظار اتصال، تعداد تلاش‌ها، و زمان پاسخ‌دهی در CloudFront می‌تواند تأثیر مستقیمی بر خطا داشته باشد

وضعیت سرور

کرش شدن فضای اجرایی یا عدم دریافت پاسخ از سرورهای داخلی می‌تواند منجر به تایم‌اوت شود

پیکربندی‌های CloudFront و زمان‌های انتظار

به‌طور پیش‌فرض، CloudFront تا ۳۰ ثانیه (۳ تلاش با ۱۰ ثانیه هر کدام) منتظر اتصال به اوریجین اولیه می‌ماند قبل از تلاش برای اتصال به اوریجین ثانویه یا بازگرداندن خطا.

برای افزایش زمان انتظار CloudFront برای دریافت پاسخ از اوریجین، مقدار زمان پاسخ‌دهی را به‌روزرسانی کنید. مقدار پیش‌فرض ۳۰ ثانیه است اما می‌توان آن را افزایش داد.

اگر نیاز به افزایش محدوده‌های زمان انتظار به عدد کمتر از ۴ ثانیه یا بیشتر از ۶۰ ثانیه دارید، با مرکز پشتیبانی AWS تماس بگیرید.

تحلیل خطا در فضاهای Hugging Face

آپلود دیتاست‌های بزرگ

امکان آپلود دیتاست‌های بزرگ (۵۰۰+ گیگابایت) به هاب دیگر وجود ندارد، زیرا در نهایت با خطای «504 Server Error: Gateway Time-out» خراب می‌شود.

آپلود دیتاست ۵۰۰ گیگابایتی

هنگام تلاش برای آپلود دیتاست بزرگ (حدود ۵۰۰ گیگابایت) به هاب Hugging Face، خطاهای 504 Gateway Timeout مداوم رخ می‌دهد.

تابع push_to_hub()

هنگام استفاده از dataset.push_to_hub() برای آپلود دیتاست، خطای HTTP 504 requests.exceptions رخ می‌دهد.

تایم‌اوت اسپیس

تایم‌اوت برای جلوگیری از آویزان ماندن درخواست‌ها در صورت کرش شدن فضای اجرایی و عدم امکان راه‌اندازی مجدد طراحی شده است.

انواع اسپیس‌ها و تفاوت‌های آنها

اسپیس‌های استاتیک

اسپیس‌های استاتیک برای نمایش محتوای ثابت مانند وب‌سایت‌ها، مستندات، یا پروژه‌های غیرتعاملی طراحی شده‌اند. این اسپیس‌ها معمولاً کمتر در معرض خطاهای 504 Gateway Timeout قرار می‌گیرند زیرا نیازی به پردازش داده در زمان واقعی ندارند.

اسپیس‌های داینامیک

اسپیس‌های داینامیک اجازه می‌دهند کد خود را در فضای Hugging Face اجرا کنید. این اسپیس‌ها بیشتر در معرض خطاهای 504 Gateway Timeout قرار می‌گیرند زیرا نیاز به پردازش درخواست‌های کاربر در زمان واقعی دارند و ممکن است به سرورهای داخلی برای محاسبات گران‌قیمت دسترسی داشته باشند.

این موضوع جلوگیری از از دست دادن داده در زمان راه‌اندازی مجدد اسپیس است که هر ۲۴ ساعت یکبار رخ می‌دهد. ZeroGPU زیرساخت مشترکی است که استفاده از GPU را برای مدل‌های AI و دموها بهینه‌سازی می‌کند.

تحلیل APIها و اتصالات داخلی

نمودار معماری سیستم نمایش‌دهنده اتصالات API با پنج عنصر اصلی: سمت چپ مرورگر کاربر با نماد دایره سفید و نوشته 'Client Request'، سپس سرور گیت‌وی با نماد مربع آبی تیره و نوشته 'Gateway Router'، در مرکز سه سرور داخلی با نمادهای مربع بنفش روشن با نوشته‌های 'Internal Server 1'، 'Internal Server 2'، و 'Internal Server 3'، سمت راست دو سرور اوریجین با نمادهای مربع آبی روشن با نوشته‌های 'Origin Server A' و 'Origin Server B'، و در پایین کادر کوچک با نماد ابر و نوشته 'CloudFront CDN'. تمام اتصالات با خطوط آبی متوسط و فلش‌های دوتایی نشان‌دهنده ارتباط داده، با یک خط قرمز ضخیم بین گیت‌وی و سرورهای داخلی با نوشته '504 Timeout' برای نشان‌دهنده خطا. پس‌زمینه سفید روشن با فونت سنس‌سریف فارسی و رنگ‌های اصلی آبی (#1a73b3) و بنفش (#6366f1).

504 Gateway Time-out از router.huggingface.co معمولاً به معنای این است که روتر (گیت‌وی) برای دریافت پاسخ از سرور بالادست بیش از حد منتظر مانده است.

هنگام مشاهده: اتصال حدود ۱۲۰ ثانیه بسته می‌شود بدون توجه به تایم‌اوت کلاینت شما، شما خطای سطح برنامه‌ای JSON دریافت نمی‌کنید.

این رفتار ممکن است مشابه آنچه هنگام کوچک بودن تنظیم مقیاس‌بندی endpoint رخ می‌دهد باشد.

موارد واقعی و تجربیات کاربران

خطاهای متناوب 500 و 504

خطاهای 500 مرتبط با کارهای زیرساختی اخیر امروز بودند. خطاهای 504 Gateway Timeout متناوب در API استنتاجی رخ می‌داد.

صفحه وضعیت نشان‌دهنده عدم وقوع حادثه نبود.

خطای ورود به سیستم

هنگام ورود به سیستم، خطای 504 دریافت می‌کنید. درخواست بیش از حد طول می‌کشد، لطفاً بعداً دوباره تلاش کنید.

رفع مشکل ورود

مشکل با ایجاد محیط مجازی و نصب مجدد همه چیز از ابتدا حل شد.

تکرار خطاها

صفحه وضعیت Hugging Face همیشه ۱۰۰٪ آپ‌تایم نشان می‌دهد. آیا این به دلیل عدم استفاده از طرح Pro است؟ خطاهای 504 Gateway Timeout مداوم رخ می‌دهد.

لاگ‌های سرور و اشکال‌زدایی

لاگ‌های دریافتی نشان‌دهنده خطای HfHubHTTPError: 401 Client Error: Unauthorized برای آدرس https://router.huggingface.co/hf-inference/models/HuggingFaceH4/zephyr-7b-beta/v1/chat/completions بود. این نشان‌دهنده شکست احراز هویت (نام کاربری یا رمز عبور نامعتبر) است، نه خطای 504 Gateway Timeout.

504 Gateway Timeout با صفحه خطا HTML (و پیام «invalid character '\u003c'») به معنای عدم پاسخ‌دهی به موقع API OpenAI است.

وضعیت زیرساخت و اعلانات رسمی

اصلاح مشکل

مشکل زیرساختی پایه‌ای شناسایی و رفع شد. اسپیس‌ها عملیاتی هستند.

قطعی طولانی

سرویس اسپیس برای ۴+ ساعت قطع بوده و نشانه بازیابی وجود ندارد. ما برای رفع این مشکل تلاش می‌کنیم.

قطعی عمده

قطعی عمده منجر به آفلاین شدن سایت برای حداقل ۴ ساعت شده است.

504 Gateway timed out ۶ ساعت بعد، خطا سرور یا تعمیرات در HF است. ما رفع‌کننده‌ای برای کمک به مشکل گزارش‌شده ۵۰۰ اعمال کرده‌ایم.

نتیجه‌گیری و پیشنهادات

علل اصلی خطا 504 Gateway Timeout

  • زمان انتظار پیش‌فرض CloudFront: پیش‌فرض ۳۰ ثانیه ممکن است برای پردازش‌های سنگین کافی نباشد.
  • مشکلات سرور داخلی: کرش شدن فضای اجرایی یا عدم پاسخ‌دهی سرورهای بالادست.
  • پیکربندی‌های نادرست: تنظیمات نامناسب تعداد تلاش‌ها یا زمان اتصال.
  • پهنای باند محدود: برای آپلود دیتاست‌های بزرگ (۵۰۰+ گیگابایت).

راه‌حل‌های پیشنهادی

  • افزایش زمان پاسخ‌دهی: افزایش مقدار زمان پاسخ‌دهی در CloudFront به بیش از ۳۰ ثانیه (حداکثر ۱۲۰ ثانیه).
  • به‌روزرسانی تنظیمات API: اطمینان از تنظیمات صحیح زمان انتظار در کلاینت‌ها.
  • استفاده از صف‌بندی: پیاده‌سازی queue=True و demo.queue().launch() برای مدیریت درخواست‌ها.
  • پایش زیرساخت: بررسی وضعیت سرورهای داخلی و اتصالات شبکه.

توصیه‌های عملی

برای جلوگیری از خطا 504 Gateway Timeout، توصیه می‌شود از زمان‌های انتظار مناسب در کلاینت‌ها استفاده کنید، پیکربندی‌های CloudFront را به‌روزرسانی کنید، و از مدیریت صف برای پردازش‌های طولانی‌مدت استفاده کنید. همچنین، بررسی وضعیت رسمی Hugging Face برای شناسایی قطعی‌های زیرساختی مهم است.