http.nonProxyHosts は Hosts
http.nonProxyHosts を http.nonProxyHostって書いてて3時間はまった。
しにたい。
Media wikiを別サーバに移行したら元のサーバにリダイレクトしたのをなんとかした
IPが別のサーバにMediaWikiを移転したらどうも元のサーバにリダイレクトされるといわれた。
ドメインはIP直なので、とりあえずそのIPでドキュメントルートあたりをgrepしてみるとに。
[root@hoge html]# grep 古いIP *
LocalSettings.php:$wgServer = "http:// 古いIP ";
LocalSettings.php:$wgEmergencyContact = "hoge@ 古いIP ";
LocalSettings.php:$wgPasswordSender = "hoge@ 古いIP ";
ma.php:$baseAddr = "http:// 古いIP /";
mi.php:$baseAddr = "http:// 古いIP /";
とまあ5か所ぐらい出てきたのでそれを書き換えた。
その後リダイレクトはされてないので、まあ問題は解決したんじゃないかと思う。
Eclipse で Gradle さんで JAVA_HOME
eclipse で gradle を触っていた時に
Cannot find System Java Compiler. Ensure that you have installed a JDK (not just a JRE) and configured your JAVA_HOME system variable to point to the according directory.
と言われ、JAVA_HOMEは設定してるだろJK・・・と思いながらちょっと詰まった。
これはどうも別のJAVA_HOMEらしい。で
ウインドウ→設定→Gradle→引数
のJava Homeの欄
Workspace JRE:
を設定すれば動いた。
■
さてhttpd.conf をいじる
KeepAlive On
MaxKeepAliveRequests 30
KeepAliveTimeOut 1
1
Concurrency Level: 100
Time taken for tests: 46.054 seconds
Complete requests: 10000
Failed requests: 579
(Connect: 0, Receive: 0, Length: 579, Exceptions: 0)
Write errors: 0
Total transferred: 144288194 bytes
HTML transferred: 141508194 bytes
Requests per second: 217.14 [#/sec] (mean)
Time per request: 460.539 [ms] (mean)
Time per request: 4.605 [ms] (mean, across all concurrent requests)
Transfer rate: 3059.60 [Kbytes/sec] received
2
Concurrency Level: 100
Time taken for tests: 39.518 seconds
Complete requests: 10000
Failed requests: 906
(Connect: 0, Receive: 0, Length: 906, Exceptions: 0)
Write errors: 0
Total transferred: 144185516 bytes
HTML transferred: 141405516 bytes
Requests per second: 253.05 [#/sec] (mean)
Time per request: 395.176 [ms] (mean)
Time per request: 3.952 [ms] (mean, across all concurrent requests)
Transfer rate: 3563.12 [Kbytes/sec] received
かわらんね・・・
並列を500に
Concurrency Level: 500
Time taken for tests: 37.651 seconds
Complete requests: 10000
Failed requests: 1380
(Connect: 0, Receive: 0, Length: 1380, Exceptions: 0)
Write errors: 0
Total transferred: 144045142 bytes
HTML transferred: 141264864 bytes
Requests per second: 265.59 [#/sec] (mean)
Time per request: 1882.566 [ms] (mean)
Time per request: 3.765 [ms] (mean, across all concurrent requests)
Transfer rate: 3736.10 [Kbytes/sec] received
700
Concurrency Level: 700
Time taken for tests: 54.106 seconds
Complete requests: 10000
Failed requests: 895
(Connect: 0, Receive: 0, Length: 895, Exceptions: 0)
Write errors: 0
Total transferred: 144188970 bytes
HTML transferred: 141408970 bytes
Requests per second: 184.82 [#/sec] (mean)
Time per request: 3787.435 [ms] (mean)
Time per request: 5.411 [ms] (mean, across all concurrent requests)
Transfer rate: 2602.47 [Kbytes/sec] received
本陣を触る。
Mac clients 200 / thred per child 50 = 4 つのプロセスが出来るはず?
最初から4つ作っておいてみる。
<IfModule mpm_worker_module>
StartServers 4
MaxClients 200
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 50
MaxRequestsPerChild 0
</IfModule>
確かにそうなってる?
# ps aux|grep http
root 13520 0.0 0.1 109536 3712 pts/5 T 17:48 0:00 vim extra/httpd-mpm.conf
root 16093 0.0 0.2 132064 4516 ? Ss 18:00 0:00 /usr/local/httpd-2.2.16/bin/httpd -k start
daemon 16310 5.7 0.4 1389792 10068 ? S 18:00 0:02 /usr/local/httpd-2.2.16/bin/httpd -k start
daemon 16510 5.1 0.4 735916 9764 ? Sl 18:01 0:01 /usr/local/httpd-2.2.16/bin/httpd -k start
daemon 16567 5.2 0.4 735476 9256 ? Sl 18:01 0:01 /usr/local/httpd-2.2.16/bin/httpd -k start
root 16722 0.0 0.0 65392 844 pts/5 S+ 18:01 0:00 grep http
ぼちぼち。
Concurrency Level: 100
Time taken for tests: 37.485 seconds
Complete requests: 10000
Failed requests: 801
(Connect: 0, Receive: 0, Length: 801, Exceptions: 0)
Write errors: 0
Total transferred: 144218486 bytes
HTML transferred: 141438486 bytes
Requests per second: 266.78 [#/sec] (mean)
Time per request: 374.846 [ms] (mean)
Time per request: 3.748 [ms] (mean, across all concurrent requests)
Transfer rate: 3757.24 [Kbytes/sec] received
デフォルトと同じく6つプロセスが立つようにしてみる
<IfModule mpm_worker_module>
StartServers 4
MaxClients 300
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 50
MaxRequestsPerChild 0
</IfModule>
プロセスは最初4→2、で高負荷になると6に戻った。
# ps aux|grep http
root 13520 0.0 0.1 109536 3712 pts/5 T 17:48 0:00 vim extra/httpd-mpm.conf
root 17959 0.0 0.2 132064 4524 ? Ss 18:08 0:00 /usr/local/httpd-2.2.16/bin/httpd -k start
daemon 18749 2.0 0.4 800996 9460 ? Sl 18:10 0:02 /usr/local/httpd-2.2.16/bin/httpd -k start
daemon 18981 6.3 0.4 736028 9220 ? Sl 18:12 0:00 /usr/local/httpd-2.2.16/bin/httpd -k start
daemon 19038 5.5 0.3 800480 8196 ? Sl 18:12 0:00 /usr/local/httpd-2.2.16/bin/httpd -k start
root 19189 0.0 0.0 65392 840 pts/5 S+ 18:12 0:00 grep http
# cat /proc/17959/status
Name: httpd
State: S (sleeping)
SleepAVG: 78%
Tgid: 17959
Pid: 17959
PPid: 1
TracerPid: 0
Uid: 0 0 0 0
Gid: 0 0 0 0
FDSize: 64
Groups: 0 1 2 3 4 6 10
VmPeak: 132064 kB
VmSize: 132064 kB
VmLck: 0 kB
VmHWM: 4524 kB
VmRSS: 4524 kB
VmData: 2432 kB
VmStk: 84 kB
VmExe: 412 kB
VmLib: 5632 kB
VmPTE: 312 kB
StaBrk: 03ac4000 kB
Brk: 03cde000 kB
StaStk: 7fff1d8446f0 kB
仮想メモリ的に132MBぐらい?なので10プロセスで1.3Gぐらいメモリを食うのか。
あんまりapacheにメモリは裂けないので、これぐらいで良しとする。
古いアパッチをなんとかチューニングする4 カーネルパラ触るだけ
カーネルパラメータをいじる
デフォルトままの設定。
mpmもデフォルト
<IfModule mpm_worker_module>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
1
Concurrency Level: 100
Time taken for tests: 38.576 seconds
Complete requests: 10000
Failed requests: 777
(Connect: 0, Receive: 0, Length: 777, Exceptions: 0)
Write errors: 0
Total transferred: 144226022 bytes
HTML transferred: 141446022 bytes
Requests per second: 259.23 [#/sec] (mean)
Time per request: 385.757 [ms] (mean)
Time per request: 3.858 [ms] (mean, across all concurrent requests)
Transfer rate: 3651.15 [Kbytes/sec] received
2
Concurrency Level: 100
Time taken for tests: 39.264 seconds
Complete requests: 10000
Failed requests: 806
(Connect: 0, Receive: 0, Length: 806, Exceptions: 0)
Write errors: 0
Total transferred: 144216916 bytes
HTML transferred: 141436916 bytes
Requests per second: 254.69 [#/sec] (mean)
Time per request: 392.641 [ms] (mean)
Time per request: 3.926 [ms] (mean, across all concurrent requests)
Transfer rate: 3586.91 [Kbytes/sec] received
3
oncurrency Level: 100
Time taken for tests: 39.463 seconds
Complete requests: 10000
Failed requests: 892
(Connect: 0, Receive: 0, Length: 892, Exceptions: 0)
Write errors: 0
Total transferred: 144189912 bytes
HTML transferred: 141409912 bytes
Requests per second: 253.40 [#/sec] (mean)
Time per request: 394.633 [ms] (mean)
Time per request: 3.946 [ms] (mean, across all concurrent requests)
Transfer rate: 3568.13 [Kbytes/sec] received
値がよくなったのは送り手のカーネルパラメータをいじったため。
ここで適当にぶっこむ
/etc/sysctl.conf
net.ipv4.tcp_max_syn_backlog = 20480
net.core.somaxconn = 20480
net.ipv4.tcp_rmem = 4096 873800 1747600
net.ipv4.tcp_wmem = 4096 873800 1747600
net.ipv4.tcp_mem = 2048000 2048000 2048000
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmmni = 4096
net.ipv4.ip_local_port_range = 11000 65500
net.core.rmem_default = 1048576
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
vm.swappiness = 0
で
]# /sbin/sysctl -p
apacheも再起動しておく
1.
Concurrency Level: 100
Time taken for tests: 41.083 seconds
Complete requests: 10000
Failed requests: 938
(Connect: 0, Receive: 0, Length: 938, Exceptions: 0)
Write errors: 0
Total transferred: 144175468 bytes
HTML transferred: 141395468 bytes
Requests per second: 243.41 [#/sec] (mean)
Time per request: 410.828 [ms] (mean)
Time per request: 4.108 [ms] (mean, across all concurrent requests)
Transfer rate: 3427.14 [Kbytes/sec] received
2
Concurrency Level: 100
Time taken for tests: 39.346 seconds
Complete requests: 10000
Failed requests: 856
(Connect: 0, Receive: 0, Length: 856, Exceptions: 0)
Write errors: 0
Total transferred: 144201216 bytes
HTML transferred: 141421216 bytes
Requests per second: 254.16 [#/sec] (mean)
Time per request: 393.458 [ms] (mean)
Time per request: 3.935 [ms] (mean, across all concurrent requests)
Transfer rate: 3579.07 [Kbytes/sec] received
3
Concurrency Level: 100
Time taken for tests: 38.429 seconds
Complete requests: 10000
Failed requests: 876
(Connect: 0, Receive: 0, Length: 876, Exceptions: 0)
Write errors: 0
Total transferred: 144194936 bytes
HTML transferred: 141414936 bytes
Requests per second: 260.22 [#/sec] (mean)
Time per request: 384.291 [ms] (mean)
Time per request: 3.843 [ms] (mean, across all concurrent requests)
Transfer rate: 3664.29 [Kbytes/sec] received
あんまかわらん。
Concurrency Level: 200
Time taken for tests: 37.371 seconds
Complete requests: 10000
Failed requests: 509
(Connect: 0, Receive: 0, Length: 509, Exceptions: 0)
Write errors: 0
Total transferred: 144310174 bytes
HTML transferred: 141530174 bytes
Requests per second: 267.59 [#/sec] (mean)
Time per request: 747.411 [ms] (mean)
Time per request: 3.737 [ms] (mean, across all concurrent requests)
Transfer rate: 3771.09 [Kbytes/sec] received
Concurrency Level: 500
Time taken for tests: 56.050 seconds
Complete requests: 10000
Failed requests: 1358
(Connect: 0, Receive: 0, Length: 1358, Exceptions: 0)
Write errors: 0
Total transferred: 144047932 bytes
HTML transferred: 141267654 bytes
Requests per second: 178.41 [#/sec] (mean)
Time per request: 2802.515 [ms] (mean)
Time per request: 5.605 [ms] (mean, across all concurrent requests)
Transfer rate: 2509.74 [Kbytes/sec] received
結局何をしたのか
TIME_WAIT のソケットのリサイクル方法
reuse はプロトコルの概念から安全な方法らしい。recycleはなる早でリサイクルする。色々と問題があると他のページに書いてある。
FIN のタイムアウト時間。攻めの1秒
このあたりのブログから参考に。
Blog Alpha Networking: kernelチューニング
Linux(CentOS6)カーネルチューニングのメモ | ちゃんと覚えておけよ?
ソケット当たりのSYNを受け付けてACKを受け取っていない状態のコネクションの保持可能数
TCPソケットが受け付けた接続要求を格納するキューの最大長を設定。
net.core.somaxconn = 20480
ソケット1つ1つが使うバッファのサイズ。
左から順に min, deault, max.
システム全体で TCP が消費できるメモリの最大値、単位はページとのこと。
min/pressure/max。全部一緒ってどうなるんだこれ。
セマフォ。4つの意味は上のページ参考。でもわからん。
kernel.sem = 250 32000 100 128
共有メモリのセグメント数
kernel.shmmni = 4096
システム全体のファイルディスクリプタの上限
fs.file-max = 6815744
すべてのアクティブな非同期 I/O コンテキスト内で許可されるイベントの最大数。なんやそれ。
この値は同時未処理リクエストを制限するもので、I/Oサブシステムの障害を防ぐために設定する必要があります。
fs.aio-max-nr = 1048576
これはわかるわ。
net.ipv4.ip_local_port_range = 11000 65500
勘所がわからん。
net.core.rmem_default = 1048576
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
スワップすんなよ、ってことか。
vm.swappiness = 0