iT邦幫忙

0

請教Apache Extension dll 與 mpm 的關係

小弟之前自已在做了一個dll讓php使用(Apache2.2 on windows)。在一般的使用下dll可以正常運作,但客戶利用http的測試軟體(loadui)進行壓力測試。結果一秒內有50個連線進行進來且使用到該dll,此dll會fault但apache還是可以運行。

我上網找看了一些文章發現mpm的模式似乎會對extension dll有所影響,但不是很肯定。
所以請問版上的大大上述的情況跟mpm的模式有關係嗎?還是另有其它原因?該如何調整?
謝謝!

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

2
wiseguy
iT邦超人 1 級 ‧ 2013-10-18 17:14:37
最佳解答

不好意思,因為上個回答內容有謬誤,為了避免誤導大家,所以重貼一次。

依照 apache 官方文件所述,在 windows 底下,如果你採用已經編譯好的 apache exe,那麼它已經固定採用 mod_winnt 的 mpm 模組,也就是《以一個監控程序跟一個服務程序在運作》的模式。這是採用 windows 原生的 multi thread 方式在運作,能獲得在該平台上的最高效能。
假如你想要在 windows 底下跑 prefork 模式,那你得自己編譯 apache,指定使用 prefork 模式來跑。因為在 windows 下的 apache 不能動態載入 mpm,只能在編譯時就決定用哪種 mpm。

你有提到《所謂的"thread safe 的架構"的其主要的精神是指在dll內的函式不能使用全域變數及創建其它的thread嗎?》,我想你對 multi thread 應該有概念了。如果想再多瞭解,google 一下就可以找到很多豐富資料,我就不多說了。

我要發表回答

立即登入回答