توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : مشکل سرعت آپلود وب سرور nginx
MUV
May 29th, 2013, 03:05
سلام
یه سرور اختصاصی ویندوز 2008 هستش با پورت یک گیگ که سرعت پورتش حدود 80 مگابایت هست
حالا با nginx وب سرور داده شده و لینک برای دانلود قرار داده شده توی سایت
ولی سرعت دانلود کل کاربرا روی هم از 8 مگابیت در ثانیه بالاتر نمیره
و وقتی می خوای دانلود کنی ارور میده
در صورتی که وقتی پورت 80 رو آزاد می کنم و ای ای اس رو فعال می کنم سرعت آپلود از سرور تا 40 مگابیت هم می رسه
یعنی کاربرا تا 40 مگابیت دانلود میکنند.
حالا سوال اینجاست که چطوری می تونم این محدودیت رو از روی nginx وردارم؟
ممنون
Reza.exe
May 29th, 2013, 08:21
nginx همچین محدودیتی نداره
مگه این که خودتون محدودیت کانکشن و سرعت تعیین کرده باشید
این مورد را هم در نظر بگیرید درخواست های دانلود به صورت رندوم هستند
ممکن هست هاردتون کم بیاره
i/o هارد را چک کنید
nginxweb
May 29th, 2013, 08:34
دوست عزیز
دستور زیر رو در سروری که nginx داره وارد نمایید:
nginx -V
لیستی از ماژول های Compile شده روی وب سرور nginx نمایش داده خواهد شد
سپس ببینید آیا از مازول مثل:
limit_rate
یا همچنین:
HttpCoreModule
استفاده شده است یا خیر . اگر استفاده شده باشه باعث ایجاد limit connection و Speed limit خواهد شد
:53:
Reza.exe
May 29th, 2013, 08:37
دوست عزیز
دستور زیر رو در سروری که nginx داره وارد نمایید:
nginx -V
لیستی از ماژول های Compile شده روی وب سرور nginx نمایش داده خواهد شد
سپس ببینید آیا از مازول مثل:
limit_rate
یا همچنین:
HttpCoreModule
استفاده شده است یا خیر . اگر استفاده شده باشه باعث ایجاد limit connection و Speed limit خواهد شد
:53:
limit_rate جز ماژول های استاندارد هست و به صورت دیفالت نصب هست
تا وقتی هم مقدارش تو کانفیگ تعریف نشده باشه تاثیری در سرعت نداره
MUV
May 29th, 2013, 13:50
ممنون از دوستان
این کد رو کجا باید بزنم
مطمئن هستم از هارد نیست چون وقتی از ای ای اس استفاده میشه سرعت خیلی بالاتر از این هستش
با تغییر تعداد کانکشن هم تغییری توی سرعت لحاظ نمیشه. تعداد کانکشن رو به 500 هزار تا هم بردم اما سرعت همونه و همون ارور رو میده
MUV
May 29th, 2013, 15:06
الان تست کردم متوجه شدم که وقتی worker_processes روی دو یا سه می کنم
و وب سرور رو ران می کنم کار نمی کنه و وقتی دوباره یک میزارم شروع می کنه به کار
مشکل از چی هستش؟؟
MUV
May 29th, 2013, 17:13
خوب من خیلی گشتم و متوجه شدم که تعداد هر کانکشن در هر ورکر نمی تونه بیشتر از 1000 باشه و هر چقدر هم تغییر بدیم بیشتر نمیشه مگه اینکه ورکر رو بیشتر کنیم
و وقتی هم که تعداد ورکر رو بیشتر می کنیم سیستم ران نمیشه. متاسفانه
خوب حالا هیچ کدوم از دوستان نمی تونند کمک کنند که تعداد ورکر رو بیشتر کنم؟؟؟؟
ali_fattahi
May 30th, 2013, 13:25
خوب من خیلی گشتم و متوجه شدم که تعداد هر کانکشن در هر ورکر نمی تونه بیشتر از 1000 باشه و هر چقدر هم تغییر بدیم بیشتر نمیشه مگه اینکه ورکر رو بیشتر کنیم
و وقتی هم که تعداد ورکر رو بیشتر می کنیم سیستم ران نمیشه. متاسفانه
خوب حالا هیچ کدوم از دوستان نمی تونند کمک کنند که تعداد ورکر رو بیشتر کنم؟؟؟؟
خروجی های دستورات زیر رو بده تا ببینم مشکل از چیه..
اول خروجی این سه تا دستور رو بده
cat /proc/sys/fs/file-max
ulimit -Hn
ulimit -Sn
بعد هم خروجی تک تک این دستورات
cat /proc/sys/net/ipv4/tcp_mem
cat /proc/sys/net/core/rmem_default
cat /proc/sys/net/core/rmem_max
cat /proc/sys/net/core/wmem_default
cat /proc/sys/net/core/wmem_max
cat /proc/sys/net/core/optmem_max
MUV
May 30th, 2013, 15:10
خروجی های دستورات زیر رو بده تا ببینم مشکل از چیه..
اول خروجی این سه تا دستور رو بده
cat /proc/sys/fs/file-max
ulimit -Hn
ulimit -Sn
بعد هم خروجی تک تک این دستورات
cat /proc/sys/net/ipv4/tcp_mem
cat /proc/sys/net/core/rmem_default
cat /proc/sys/net/core/rmem_max
cat /proc/sys/net/core/wmem_default
cat /proc/sys/net/core/wmem_max
cat /proc/sys/net/core/optmem_max
خوب این وب سرور رو روی ویندوز ران کردم
این کدها که دادید مگه مال لینوکس نیست؟؟
ali_fattahi
May 30th, 2013, 15:17
خوب این وب سرور رو روی ویندوز ران کردم
این کدها که دادید مگه مال لینوکس نیست؟؟
اها، حواسم نبود ویندوزی هستید ، یه همچین مشکلی یکی دیگه هم تو ویندوز داشت بعد از کلی بررسی فهمیدیم از خود ویندوز هست که محدودیت ایجاد میکنه و راه حلی هم واسش پیدا نکردیم
MUV
May 30th, 2013, 15:27
آره متاسفانه تنها راه حلی که به نظرم رسید این بود که روی سرور اصلی چند تا وی پی اس ایجاد کنیم و روی هر کدوم مقداری از فایلها رو قرار بدیم تا روی هر وی پی اس 1000 کانکشن داشته باشیم
البته من توی انجمن اصلی دیدم که میشه تعداد worker رو زیاد کرد و به تعداد هر worker مثلا 1000 کانکشن لیمیت داد. اما هرکاری کردم نشد.
تا worker رو از یک به هر عددی عوض می کنم ران میشه اما لینکها کار نمیکنند.
مثلا این جا بحث شده: nginx on windows keeps hanging (http://forum.nginx.org/read.php?2,226613)
توی سایت خودش هم اینجوری زده:
Although several workers can be started, only one of them actually does any work.
A worker can handle no more than 1024 simultaneous connections.
The cache and other modules which require shared memory support do not work on Windows Vista and later versions due to address space layout randomization being enabled in these Windows versions.
ali_fattahi
May 30th, 2013, 15:31
آره متاسفانه تنها راه حلی که به نظرم رسید این بود که روی سرور اصلی چند تا وی پی اس ایجاد کنیم و روی هر کدوم مقداری از فایلها رو قرار بدیم تا روی هر وی پی اس 1000 کانکشن داشته باشیم
البته من توی انجمن اصلی دیدم که میشه تعداد worker رو زیاد کرد و به تعداد هر worker مثلا 1000 کانکشن لیمیت داد. اما هرکاری کردم نشد.
تا worker رو از یک به هر عددی عوض می کنم ران میشه اما لینکها کار نمیکنند.
مثلا این جا بحث شده: nginx on windows keeps hanging (http://forum.nginx.org/read.php?2,226613)
توی سایت خودش هم اینجوری زده:
Although several workers can be started, only one of them actually does any work.
A worker can handle no more than 1024 simultaneous connections.
The cache and other modules which require shared memory support do not work on Windows Vista and later versions due to address space layout randomization being enabled in these Windows versions.
شاید به خاطر ورژن انجینکس شما هم باشه . ولی winginx رو هم یه تست بزنید