簡體   English   中英

限制wsgi中的系統資源

[英]Restricting system resources in wsgi

我在共享主機上的mod_wsgi環境中運行Django。 我想限制請求可以使用的資源,並且理想情況下,如果超出該數量,則引發Exception。 WSGI選項如下:

WSGIRestrictSignal off
WSGIRestrictStdout off

VirtualHost具有以下內容:

WSGIDaemonProcess django processes=10 threads=1 display-name=django-web
WSGIProcessGroup django

在請求中,我執行以下操作:

signal.setrlimit(resource.RLIMIT_CPU, (10, -1))
signal.signal(signal.SIGXCPU, cpu_signal)
signal.signal(signal.SIGALRM, timeout_signal)
signal.alarm(1)
#Do some stuff
signal.alarm(0)

但是,當我運行請求時,盡管我打印出活動線程的數量和線程名稱,但得到的錯誤信號僅在主線程中有效,但我得到的是一個線程,而當前線程名稱是MainThread,所以我不明白為什么Python嘗試設置不相信其在主線程中運行的信號。

我正在運行Python 2.7.2,Django 1.3.1 Apache 2.2.21和WSGI 3.3

發送電子郵件到mod_wsgi郵件列表,並將在此處討論可能的情況。 在mod_wsgi 4.0 dev版本中,有一些實驗機制可以在CPU使用率超過某個值時終止進程,但是它是進程范圍的。 由於可以使用多線程,因此很難按請求進行操作。 在這里,stackoverflow並不是進行討論的地方。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM