Apache in Slax

0

源起

apache 調試需要不同參數,所以建立這個 mo 順便測看看不同編譯的效能差異。

apache.mo

老步驟。

  1. cd /mnt/hda1
  2. wget httpd-2.2.3.tar.bz2
  3. tar jxvf httpd-2.2.3.tar.bz2
  4. cd httpd-2.2.3
  5. ./configure
  6. make
  7. checkinstall
  8. mv httpd-2.2.3-i386.tgz ../
  9. cd ..
  10. mkdir /mnt/hda1/work/apache
  11. installpkg -root /mnt/hda1/work/apache httpd-2.2.3-i386.tgz
  12. cd /mnt/hda1/work
  13. dir2mo apache apache-2.2.3.mo

test apache-2.2.3.mo

  1. reboot first
  2. uselivemod apache-2.2.3.mo
  3. /usr/local/apache2/bin/apachectl -k start
  4. netstat -at

結果要看大一點的檔案會發現開不起來,看 access log 發現都是 HTTP STATUS 206,沒有資料傳出,google 發現這篇有提到這個 sendfile syscall 的問題。同時查到 Unionfs 尚未支援 sendfile 的類似訊息。

根據建議,將 httpd.conf 做點修正,EnableSendfile 改 off 就可以跑起來,進一步參閱 EnableSendfile Directive

但是如果需要測試 sendfile 的話,就需要裝在別的檔案系統,例如之前裝在 tmpfs 的做法。

要先改 httpd.conf 讓它使用 EnableSendfile,同時 DocumentRoot 指到 /mnt/hda1/tmpfs/apache2/htdocs,重新開機後,另外加上可以填滿 htdocs 的東西。

  1. mount tmpfs /mnt/hda1/tmpfs -t tmpfs -o size=64m
  2. mkdir -p /mnt/hda1/tmpfs/apache2/htdocs
  3. cp something to htdocs
  4. /usr/local/apache2/bin/apachectl -k start

雙機作業

這次測希望用兩台機器來測,而不是單機測,所以直接把 slax.vmx 那個檔案夾複製一個,就生出另一台 slax2 機器可以用,還包含一顆一模一樣的硬碟(vmdk)可用。

但是用之前要先改一下網卡的硬體位址,免得衝到,所以打開 slax2 的 slax.vmx,將其中一行 ethernet0.generatedAddress 後面隨便加個一就可以了。

一開機會希望你建立一個新的識別,我是直接建立,不過開機後要立刻按 F2 去改 BIOS,讓 CDROM 先開機。開機完只要互相 ping 一下,確定網路已通就可以開始雙機暴走測試。

benchmark

TODO 未完待續。

Comments

(leave url/email »)

   Preview comment