Apache2 auf Suse 9.3 seit kurzem langsam bei phpBB Plus nach Login
Von einem auf den anderen Tag wurde mein Forum langsam.
Es hat ca. 2500 User und 200000 Beiträge. Die DB ist ca. 150 MB groß.
Maschine: AMD Opteron 148 mit 2GB RAM
Er swappt auch nicht und habe noch ca. 300 bis 600 MB RAM frei.
Wenn ich nicht eingeloggt bin ist alles verdammt schnell.
Portalseite (sind noch mehrere User online)
[ Zeit: 0.9434s ][ Queries: 52 (0.5660s) ]
Indexseite vom Forum:
[ Zeit: 0.4825s ][ Queries: 15 (0.1752s) ]
Sobald ich mich einlogge, steigt die Ladezeit für eine Seite auf ca. 4 bis 6 Sekunden. Auch wenn ich z.B. den Kalender abschalte ändert sich nichts.
(Ist eine Funktion, die einiges an Leistung kostet)
Es wurde nichts geändert, darum ist diese Verhalten verdammt komisch.
Wenn ich mich z.B. als normaler User einlogge, dann dauert der Login oder ein Seitenaufruf so lange:
[ Zeit: 5.6694s ][ Queries: 59 (0.8216s) ]
[ Zeit: 4.5273s ][ Queries: 26 (0.1964s) ]
So wie der erste Abschnitt sieht es aus, wenn viel los ist.
Der zweite Abschnitt spiegelt z.B. ein Posting aus.
Der dritte Abschnitt zeigt, wie ich mich gerade alleine einlogge. Die Anzeige von top steht dann ca. 3 Sekunden so da
Wenn ich z.B. Apache mit ab2 -n 1000 -c 10 teste erhalte ich folgende Werte:
1. Test mit html Seite:
Document Path: /index.html
Document Length: 4846 bytes
Concurrency Level: 10
Time taken for tests: 0.275188 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 5117306 bytes
HTML transferred: 4860538 bytes
Requests per second: 3633.88 [#/sec] (mean)
Time per request: 2.752 [ms] (mean)
Time per request: 0.275 [ms] (mean, across all concurrent requests)
Transfer rate: 18158.50 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 1
Processing: 1 2 0.8 2 8
Waiting: 0 1 1.0 2 8
Total: 1 2 0.8 2 8
2. Test mit php Seite:
Document Path: /portal.php
Document Length: 0 bytes
Concurrency Level: 10
Time taken for tests: 4.162284 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Non-2xx responses: 1000
Total transferred: 323000 bytes
HTML transferred: 0 bytes
Requests per second: 240.25 [#/sec] (mean)
Time per request: 41.623 [ms] (mean)
Time per request: 4.162 [ms] (mean, across all concurrent requests)
Transfer rate: 75.68 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 13 14 0.7 14 23
Processing: 19 26 8.4 25 96
Waiting: 18 26 8.3 24 95
Total: 33 41 8.3 39 110
er swappt nicht habe noch ca. 300 MB RAM frei und swap ist ungenutzt
Ich habe mir jetzt noch die Mühe gemacht, einen mysql Benchmark laufen zu lassen. Der sieht gut aus:
Vergleich gibts hier:
MySQL - Die MySQL Benchmark Suit - TYPO3forum.net
alter-table: Total time: 35 wallclock secs ( 0.03 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.03 CPU)
ATIS: Total time: 6 wallclock secs ( 4.02 usr 0.88 sys + 0.00 cusr 0.00 csys = 4.90 CPU)
big-tables: Total time: 7 wallclock secs ( 2.98 usr 1.63 sys + 0.00 cusr 0.00 csys = 4.61 CPU)
connect: Total time: 71 wallclock secs (17.89 usr 6.37 sys + 0.00 cusr 0.00 csys = 24.26 CPU)
create: Total time: 255 wallclock secs ( 4.47 usr 1.14 sys + 0.00 cusr 0.00 csys = 5.61 CPU)
insert: Total time: 595 wallclock secs (207.82 usr 40.28 sys + 0.00 cusr 0.00 csys = 248.10 CPU)
select: Total time: 53 wallclock secs (19.91 usr 3.35 sys + 0.00 cusr 0.00 csys = 23.26 CPU)
transactions: Test skipped because the database doesn't support transactions
wisconsin: Total time: 3 wallclock secs ( 1.19 usr 0.48 sys + 0.00 cusr 0.00 csys = 1.67 CPU)
All 9 test executed successfully
Totals per operation:
Operation seconds usr sys cpu tests
alter_table_add 14.00 0.02 0.00 0.02 100
alter_table_drop 16.00 0.01 0.00 0.01 91
book-keeping 3.00 0.00 0.00 0.00 11
connect 3.00 2.02 0.17 2.19 10000
connect+select_1_row 4.00 2.25 0.24 2.49 10000
connect+select_simple 4.00 2.00 0.25 2.25 10000
count 12.00 0.03 0.00 0.03 100
count_distinct 0.00 0.08 0.02 0.10 1000
count_distinct_2 0.00 0.07 0.01 0.08 1000
count_distinct_big 6.00 3.88 0.90 4.78 120
count_distinct_group 0.00 0.47 0.09 0.56 1000
count_distinct_group_on_key 0.00 0.10 0.02 0.12 1000
count_distinct_group_on_key_parts 1.00 0.46 0.07 0.53 1000
count_distinct_key_prefix 0.00 0.06 0.02 0.08 1000
count_group_on_key_parts 1.00 0.47 0.08 0.55 1000
count_on_key 13.00 3.45 0.45 3.90 50100
create+drop 85.00 3.69 1.00 4.69 10000
create_MANY_tables 81.00 0.60 0.06 0.66 10000
create_index 3.00 0.00 0.00 0.00 8
create_key+drop 82.00 0.02 0.03 0.05 10000
create_table 0.00 0.01 0.00 0.01 31
delete_all_many_keys 15.00 0.02 0.00 0.02 1
delete_big 0.00 0.00 0.00 0.00 1
delete_big_many_keys 15.00 0.02 0.00 0.02 128
delete_key 0.00 0.11 0.03 0.14 10000
delete_range 3.00 0.00 0.00 0.00 12
drop_index 2.00 0.00 0.00 0.00 8
drop_table 0.00 0.00 0.00 0.00 28
drop_table_when_MANY_tables 5.00 0.01 0.00 0.01 10000
insert 9.00 0.85 0.07 0.92 350768
insert_duplicates 6.00 0.61 0.22 0.83 100000
insert_key 15.00 1.26 0.02 1.28 100000
insert_many_fields 3.00 0.08 0.01 0.09 2000
insert_select_1_key 2.00 0.00 0.00 0.00 1
insert_select_2_keys 2.00 0.00 0.00 0.00 1
min_max 4.00 0.01 0.00 0.01 60
min_max_on_key 8.00 5.98 0.61 6.59 85000
multiple_value_insert 2.00 0.19 0.01 0.20 100000
once_prepared_select 15.00 3.09 0.99 4.08 100000
order_by_big 18.00 11.39 2.66 14.05 10
order_by_big_key 18.00 11.63 2.76 14.39 10
order_by_big_key2 17.00 11.42 2.61 14.03 10
order_by_big_key_desc 17.00 11.67 2.66 14.33 10
order_by_big_key_diff 18.00 11.42 2.65 14.07 10
order_by_big_key_prefix 17.00 11.42 2.60 14.02 10
order_by_key2_diff 2.00 0.98 0.21 1.19 500
order_by_key_prefix 1.00 0.52 0.12 0.64 500
order_by_range 2.00 0.57 0.12 0.69 500
outer_join 2.00 0.00 0.00 0.00 10
outer_join_found 2.00 0.00 0.00 0.00 10
outer_join_not_found 1.00 0.00 0.00 0.00 500
outer_join_on_key 1.00 0.00 0.00 0.00 10
prepared_select 22.00 8.63 1.17 9.80 100000
select_1_row 12.00 1.49 0.88 2.37 100000
select_1_row_cache 4.00 1.47 0.95 2.42 100000
select_2_rows 13.00 2.15 1.08 3.23 100000
select_big 19.00 11.45 2.67 14.12 80
select_big_str 7.00 2.35 0.54 2.89 10000
select_cache 1.00 0.59 0.12 0.71 10000
select_cache2 26.00 0.78 0.09 0.87 10000
select_column+column 13.00 1.64 0.85 2.49 100000
select_diff_key 54.00 0.09 0.02 0.11 500
select_distinct 1.00 0.81 0.16 0.97 800
select_group 1.00 0.51 0.09 0.60 2911
select_group_when_MANY_tables 2.00 0.15 0.05 0.20 10000
select_join 1.00 0.24 0.05 0.29 100
select_key 37.00 16.26 2.49 18.75 200000
select_key2 37.00 15.94 2.62 18.56 200000
select_key2_return_key 33.00 15.06 1.99 17.05 200000
select_key2_return_prim 35.00 15.49 2.19 17.68 200000
select_key_prefix 35.00 16.11 2.52 18.63 200000
select_key_prefix_join 3.00 2.19 0.52 2.71 100
select_key_return_key 35.00 15.74 2.23 17.97 200000
select_many_fields 4.00 2.90 1.62 4.52 2000
select_range 7.00 4.35 0.93 5.28 410
select_range_key2 3.00 1.68 0.24 1.92 25010
select_range_prefix 3.00 1.70 0.24 1.94 25010
select_simple 5.00 0.50 0.32 0.82 100000
select_simple_cache 6.00 2.02 1.09 3.11 100000
select_simple_join 0.00 0.27 0.06 0.33 500
update_big 13.00 0.00 0.00 0.00 10
update_of_key 4.00 0.60 0.22 0.82 50000
update_of_key_big 6.00 0.01 0.01 0.02 501
update_of_primary_key_many_keys 7.00 0.01 0.00 0.01 256
update_with_key 22.00 3.79 1.53 5.32 300000
update_with_key_prefix 10.00 2.47 1.26 3.73 100000
wisc_benchmark 2.00 1.19 0.48 1.67 114
TOTALS 1033.00 253.57 53.04 306.61 3425961
Sobald man sich einloggt, geht die Performance in den Keller.
Entweder geht ein apache Prozess auf 99% Prozessorauslastung, oder apache forked 5 Prozesse auf, die ca. 99% Prozessorlast erzeugen.
Kommt immer aufs gleiche raus.
Die Frage ist also, was ist anders, wenn ich eingeloggt bin und warum dauert das so lange.
Liegt es an mysql?
Liegt es an apche?
Oder liegt es an der Interaktion zwischen mysql und apache?
Wie kann ich das herausfinden?
Hier noch meine Konfig:
my.cnf
php.ini
server-tuning.conf
Kernel: 2.6.11.4-21.15-default
Apache kompiliert mit:
'./configure' '--prefix=/usr' '--datadir=/usr/share/php' '--mandir=/usr/share/man' '--bindir=/usr/bin' '--libdir=/usr/share' '--includedir=/usr/include' '--sysconfdir=/etc' '--with-_lib=lib' '--with-config-file-path=/etc' '--with-exec-dir=/usr/lib/php/bin' '--disable-debug' '--enable-inline-optimization' '--enable-memory-limit' '--enable-magic-quotes' '--enable-safe-mode' '--enable-sigchild' '--disable-ctype' '--disable-session' '--without-mysql' '--disable-cli' '--without-pear' '--with-openssl' '--with-apxs2=/usr/sbin/apxs2-prefork' 'i586-suse-linux'
Hat jemand eine Idee?
Vielen Dank schonmal und Grüße Karsten
PS: Ich habe es mal ins HTTP Forum geschrieben, weil ich mehr auf apache als auf mysql tippe.
Von einem auf den anderen Tag wurde mein Forum langsam.
Es hat ca. 2500 User und 200000 Beiträge. Die DB ist ca. 150 MB groß.
Maschine: AMD Opteron 148 mit 2GB RAM
Er swappt auch nicht und habe noch ca. 300 bis 600 MB RAM frei.
Wenn ich nicht eingeloggt bin ist alles verdammt schnell.
Portalseite (sind noch mehrere User online)
[ Zeit: 0.9434s ][ Queries: 52 (0.5660s) ]
Indexseite vom Forum:
[ Zeit: 0.4825s ][ Queries: 15 (0.1752s) ]
Sobald ich mich einlogge, steigt die Ladezeit für eine Seite auf ca. 4 bis 6 Sekunden. Auch wenn ich z.B. den Kalender abschalte ändert sich nichts.
(Ist eine Funktion, die einiges an Leistung kostet)
Es wurde nichts geändert, darum ist diese Verhalten verdammt komisch.
Wenn ich mich z.B. als normaler User einlogge, dann dauert der Login oder ein Seitenaufruf so lange:
[ Zeit: 5.6694s ][ Queries: 59 (0.8216s) ]
[ Zeit: 4.5273s ][ Queries: 26 (0.1964s) ]
So wie der erste Abschnitt sieht es aus, wenn viel los ist.
Der zweite Abschnitt spiegelt z.B. ein Posting aus.
Der dritte Abschnitt zeigt, wie ich mich gerade alleine einlogge. Die Anzeige von top steht dann ca. 3 Sekunden so da
Code:
22279 wwwrun 19 0 41044 28m 6280 R 14.3 1.4 0:03.46 httpd2-prefork
22280 wwwrun 19 0 40596 27m 6268 R 13.9 1.4 0:03.24 httpd2-prefork
22283 wwwrun 19 0 41168 28m 6324 R 12.9 1.4 0:03.43 httpd2-prefork
22282 wwwrun 19 0 42160 29m 6376 R 12.3 1.5 0:09.15 httpd2-prefork
22133 wwwrun 19 0 41380 28m 6544 R 10.9 1.4 0:11.89 httpd2-prefork
22191 wwwrun 19 0 42576 29m 6340 R 10.3 1.5 0:20.56 httpd2-prefork
22196 wwwrun 19 0 40940 28m 6344 R 10.3 1.4 0:03.27 httpd2-prefork
22285 wwwrun 19 0 40664 27m 6268 R 10.3 1.4 0:03.14 httpd2-prefork
22287 wwwrun 16 0 28920 16m 6164 R 4.3 0.8 0:00.13 httpd2-prefork
22295 wwwrun 17 0 40788 27m 6232 R 47.9 1.4 0:01.72 httpd2-prefork
22115 mysql 16 0 618m 77m 4136 R 27.2 3.8 0:17.27 mysqld
22279 wwwrun 16 0 43200 30m 6324 R 11.0 1.5 0:04.93 httpd2-prefork
22300 wwwrun 15 0 42592 29m 6376 S 10.0 1.5 0:06.26 httpd2-prefork
22302 wwwrun 16 0 27064 14m 6256 R 3.6 0.7 0:00.50 httpd2-prefork
1 root 16 0 680 248 216 S 0.0 0.0 0:00.96 init
2 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0
3 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 events/0
22300 wwwrun 22 0 44048 31m 6396 R 99.9 1.5 0:18.76 httpd2-prefork
1 root 16 0 680 248 216 S 0.0 0.0 0:00.96 init
2 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0
3 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 events/0
4 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 khelper
9 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kthread
19 root 18 -5 0 0 0 S 0.0 0.0 0:00.00 kacpid
Wenn ich z.B. Apache mit ab2 -n 1000 -c 10 teste erhalte ich folgende Werte:
1. Test mit html Seite:
Document Path: /index.html
Document Length: 4846 bytes
Concurrency Level: 10
Time taken for tests: 0.275188 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 5117306 bytes
HTML transferred: 4860538 bytes
Requests per second: 3633.88 [#/sec] (mean)
Time per request: 2.752 [ms] (mean)
Time per request: 0.275 [ms] (mean, across all concurrent requests)
Transfer rate: 18158.50 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 1
Processing: 1 2 0.8 2 8
Waiting: 0 1 1.0 2 8
Total: 1 2 0.8 2 8
2. Test mit php Seite:
Document Path: /portal.php
Document Length: 0 bytes
Concurrency Level: 10
Time taken for tests: 4.162284 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Non-2xx responses: 1000
Total transferred: 323000 bytes
HTML transferred: 0 bytes
Requests per second: 240.25 [#/sec] (mean)
Time per request: 41.623 [ms] (mean)
Time per request: 4.162 [ms] (mean, across all concurrent requests)
Transfer rate: 75.68 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 13 14 0.7 14 23
Processing: 19 26 8.4 25 96
Waiting: 18 26 8.3 24 95
Total: 33 41 8.3 39 110
er swappt nicht habe noch ca. 300 MB RAM frei und swap ist ungenutzt
Ich habe mir jetzt noch die Mühe gemacht, einen mysql Benchmark laufen zu lassen. Der sieht gut aus:
Vergleich gibts hier:
MySQL - Die MySQL Benchmark Suit - TYPO3forum.net
alter-table: Total time: 35 wallclock secs ( 0.03 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.03 CPU)
ATIS: Total time: 6 wallclock secs ( 4.02 usr 0.88 sys + 0.00 cusr 0.00 csys = 4.90 CPU)
big-tables: Total time: 7 wallclock secs ( 2.98 usr 1.63 sys + 0.00 cusr 0.00 csys = 4.61 CPU)
connect: Total time: 71 wallclock secs (17.89 usr 6.37 sys + 0.00 cusr 0.00 csys = 24.26 CPU)
create: Total time: 255 wallclock secs ( 4.47 usr 1.14 sys + 0.00 cusr 0.00 csys = 5.61 CPU)
insert: Total time: 595 wallclock secs (207.82 usr 40.28 sys + 0.00 cusr 0.00 csys = 248.10 CPU)
select: Total time: 53 wallclock secs (19.91 usr 3.35 sys + 0.00 cusr 0.00 csys = 23.26 CPU)
transactions: Test skipped because the database doesn't support transactions
wisconsin: Total time: 3 wallclock secs ( 1.19 usr 0.48 sys + 0.00 cusr 0.00 csys = 1.67 CPU)
All 9 test executed successfully
Totals per operation:
Operation seconds usr sys cpu tests
alter_table_add 14.00 0.02 0.00 0.02 100
alter_table_drop 16.00 0.01 0.00 0.01 91
book-keeping 3.00 0.00 0.00 0.00 11
connect 3.00 2.02 0.17 2.19 10000
connect+select_1_row 4.00 2.25 0.24 2.49 10000
connect+select_simple 4.00 2.00 0.25 2.25 10000
count 12.00 0.03 0.00 0.03 100
count_distinct 0.00 0.08 0.02 0.10 1000
count_distinct_2 0.00 0.07 0.01 0.08 1000
count_distinct_big 6.00 3.88 0.90 4.78 120
count_distinct_group 0.00 0.47 0.09 0.56 1000
count_distinct_group_on_key 0.00 0.10 0.02 0.12 1000
count_distinct_group_on_key_parts 1.00 0.46 0.07 0.53 1000
count_distinct_key_prefix 0.00 0.06 0.02 0.08 1000
count_group_on_key_parts 1.00 0.47 0.08 0.55 1000
count_on_key 13.00 3.45 0.45 3.90 50100
create+drop 85.00 3.69 1.00 4.69 10000
create_MANY_tables 81.00 0.60 0.06 0.66 10000
create_index 3.00 0.00 0.00 0.00 8
create_key+drop 82.00 0.02 0.03 0.05 10000
create_table 0.00 0.01 0.00 0.01 31
delete_all_many_keys 15.00 0.02 0.00 0.02 1
delete_big 0.00 0.00 0.00 0.00 1
delete_big_many_keys 15.00 0.02 0.00 0.02 128
delete_key 0.00 0.11 0.03 0.14 10000
delete_range 3.00 0.00 0.00 0.00 12
drop_index 2.00 0.00 0.00 0.00 8
drop_table 0.00 0.00 0.00 0.00 28
drop_table_when_MANY_tables 5.00 0.01 0.00 0.01 10000
insert 9.00 0.85 0.07 0.92 350768
insert_duplicates 6.00 0.61 0.22 0.83 100000
insert_key 15.00 1.26 0.02 1.28 100000
insert_many_fields 3.00 0.08 0.01 0.09 2000
insert_select_1_key 2.00 0.00 0.00 0.00 1
insert_select_2_keys 2.00 0.00 0.00 0.00 1
min_max 4.00 0.01 0.00 0.01 60
min_max_on_key 8.00 5.98 0.61 6.59 85000
multiple_value_insert 2.00 0.19 0.01 0.20 100000
once_prepared_select 15.00 3.09 0.99 4.08 100000
order_by_big 18.00 11.39 2.66 14.05 10
order_by_big_key 18.00 11.63 2.76 14.39 10
order_by_big_key2 17.00 11.42 2.61 14.03 10
order_by_big_key_desc 17.00 11.67 2.66 14.33 10
order_by_big_key_diff 18.00 11.42 2.65 14.07 10
order_by_big_key_prefix 17.00 11.42 2.60 14.02 10
order_by_key2_diff 2.00 0.98 0.21 1.19 500
order_by_key_prefix 1.00 0.52 0.12 0.64 500
order_by_range 2.00 0.57 0.12 0.69 500
outer_join 2.00 0.00 0.00 0.00 10
outer_join_found 2.00 0.00 0.00 0.00 10
outer_join_not_found 1.00 0.00 0.00 0.00 500
outer_join_on_key 1.00 0.00 0.00 0.00 10
prepared_select 22.00 8.63 1.17 9.80 100000
select_1_row 12.00 1.49 0.88 2.37 100000
select_1_row_cache 4.00 1.47 0.95 2.42 100000
select_2_rows 13.00 2.15 1.08 3.23 100000
select_big 19.00 11.45 2.67 14.12 80
select_big_str 7.00 2.35 0.54 2.89 10000
select_cache 1.00 0.59 0.12 0.71 10000
select_cache2 26.00 0.78 0.09 0.87 10000
select_column+column 13.00 1.64 0.85 2.49 100000
select_diff_key 54.00 0.09 0.02 0.11 500
select_distinct 1.00 0.81 0.16 0.97 800
select_group 1.00 0.51 0.09 0.60 2911
select_group_when_MANY_tables 2.00 0.15 0.05 0.20 10000
select_join 1.00 0.24 0.05 0.29 100
select_key 37.00 16.26 2.49 18.75 200000
select_key2 37.00 15.94 2.62 18.56 200000
select_key2_return_key 33.00 15.06 1.99 17.05 200000
select_key2_return_prim 35.00 15.49 2.19 17.68 200000
select_key_prefix 35.00 16.11 2.52 18.63 200000
select_key_prefix_join 3.00 2.19 0.52 2.71 100
select_key_return_key 35.00 15.74 2.23 17.97 200000
select_many_fields 4.00 2.90 1.62 4.52 2000
select_range 7.00 4.35 0.93 5.28 410
select_range_key2 3.00 1.68 0.24 1.92 25010
select_range_prefix 3.00 1.70 0.24 1.94 25010
select_simple 5.00 0.50 0.32 0.82 100000
select_simple_cache 6.00 2.02 1.09 3.11 100000
select_simple_join 0.00 0.27 0.06 0.33 500
update_big 13.00 0.00 0.00 0.00 10
update_of_key 4.00 0.60 0.22 0.82 50000
update_of_key_big 6.00 0.01 0.01 0.02 501
update_of_primary_key_many_keys 7.00 0.01 0.00 0.01 256
update_with_key 22.00 3.79 1.53 5.32 300000
update_with_key_prefix 10.00 2.47 1.26 3.73 100000
wisc_benchmark 2.00 1.19 0.48 1.67 114
TOTALS 1033.00 253.57 53.04 306.61 3425961
Sobald man sich einloggt, geht die Performance in den Keller.
Entweder geht ein apache Prozess auf 99% Prozessorauslastung, oder apache forked 5 Prozesse auf, die ca. 99% Prozessorlast erzeugen.
Kommt immer aufs gleiche raus.
Die Frage ist also, was ist anders, wenn ich eingeloggt bin und warum dauert das so lange.
Liegt es an mysql?
Liegt es an apche?
Oder liegt es an der Interaktion zwischen mysql und apache?
Wie kann ich das herausfinden?
Hier noch meine Konfig:
my.cnf
Code:
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-locking
key_buffer = 512M
max_allowed_packet = 16M
table_cache = 512
#sort_buffer_size = 4096K
sort_buffer_size = 8M
join_buffer_size = 8M
net_buffer_length = 16K
read_buffer_size = 8M
read_rnd_buffer_size = 16M
bulk_insert_buffer_size = 32M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
thread_stack = 128K
record_buffer = 15M
thread_cache = 512
query_cache_size = 32M
query_cache_limit = 2M
query_cache_type = 1
max_connections = 2500
wait_timeout = 10
interactive_timeout = 100
[isamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 4M
write_buffer = 4M
[myisamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 4M
write_buffer = 4M
php.ini
Code:
max_execution_time = 60 ; Maximum execution time of each script, in seconds
max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
memory_limit = 64M
post_max_size = 16M
server-tuning.conf
Code:
# prefork MPM
<IfModule prefork.c>
# number of server processes to start
StartServers 5
# minimum number of server processes which are kept spare
MinSpareServers 5
# maximum number of server processes which are kept spare
MaxSpareServers 20
# maximum number of server processes allowed to start
MaxClients 100
# maximum number of requests a server process serves
MaxRequestsPerChild 1000
</IfModule>
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
Kernel: 2.6.11.4-21.15-default
Apache kompiliert mit:
'./configure' '--prefix=/usr' '--datadir=/usr/share/php' '--mandir=/usr/share/man' '--bindir=/usr/bin' '--libdir=/usr/share' '--includedir=/usr/include' '--sysconfdir=/etc' '--with-_lib=lib' '--with-config-file-path=/etc' '--with-exec-dir=/usr/lib/php/bin' '--disable-debug' '--enable-inline-optimization' '--enable-memory-limit' '--enable-magic-quotes' '--enable-safe-mode' '--enable-sigchild' '--disable-ctype' '--disable-session' '--without-mysql' '--disable-cli' '--without-pear' '--with-openssl' '--with-apxs2=/usr/sbin/apxs2-prefork' 'i586-suse-linux'
Hat jemand eine Idee?
Vielen Dank schonmal und Grüße Karsten
PS: Ich habe es mal ins HTTP Forum geschrieben, weil ich mehr auf apache als auf mysql tippe.
Last edited by a moderator: