Apache in Slax
18
Sep
Sep
0
源起
apache 調試需要不同參數,所以建立這個 mo 順便測看看不同編譯的效能差異。
apache.mo
老步驟。
- cd /mnt/hda1
- wget httpd-2.2.3.tar.bz2
- tar jxvf httpd-2.2.3.tar.bz2
- cd httpd-2.2.3
- ./configure
- make
- checkinstall
- mv httpd-2.2.3-i386.tgz ../
- cd ..
- mkdir /mnt/hda1/work/apache
- installpkg -root /mnt/hda1/work/apache httpd-2.2.3-i386.tgz
- cd /mnt/hda1/work
- dir2mo apache apache-2.2.3.mo
test apache-2.2.3.mo
- reboot first
- uselivemod apache-2.2.3.mo
- /usr/local/apache2/bin/apachectl -k start
- 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 的東西。
- mount tmpfs /mnt/hda1/tmpfs -t tmpfs -o size=64m
- mkdir -p /mnt/hda1/tmpfs/apache2/htdocs
- cp something to htdocs
- /usr/local/apache2/bin/apachectl -k start
雙機作業
這次測希望用兩台機器來測,而不是單機測,所以直接把 slax.vmx 那個檔案夾複製一個,就生出另一台 slax2 機器可以用,還包含一顆一模一樣的硬碟(vmdk)可用。
但是用之前要先改一下網卡的硬體位址,免得衝到,所以打開 slax2 的 slax.vmx,將其中一行 ethernet0.generatedAddress 後面隨便加個一就可以了。
一開機會希望你建立一個新的識別,我是直接建立,不過開機後要立刻按 F2 去改 BIOS,讓 CDROM 先開機。開機完只要互相 ping 一下,確定網路已通就可以開始雙機暴走測試。
benchmark
TODO 未完待續。