WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Mysql på egen server eller apache-trimmning (https://www.wn.se/forum/showthread.php?t=1044129)

Azone 2010-10-05 19:06

Mysql på egen server eller apache-trimmning
 
Har en VM-server hos Citynetwork (City Cloud) som i sig fungerar bra.

Har dock lite trimmings-frågor.

När är det läge att sätta MySQL databasen på egen server?
Jag ser idag att det ibland går segt och antal queries som tar lång tid är ganska många. i "Top" ser jag att mysqld processen förbrukar en del, men svårt att avgöra om man skall trimma vidare i appache-configen och/eller my.cnf i Mysql.

Vad är fördelarna med att sätta sql-servern på egen maskin?
Eller bör jag satsa på Ngix eller httpdlight (eller vad den heter).

Vid 30 inloggade går det väldigt bra men så fort antal inloggade närmar sig 35 blir det segt. Eftersom det ofta är runt 40-50 inloggade vissa kvällar blir det ohållbart att fortsätta.

Har försökt gå över från MPM-prefork till MPM-worker men inte lyckats än, vid MPM-worker levererar den inga webbsidor trots att webservern är igång. Visst något som är felinställt, men har inte fått grep på vad än.

Kör med följande inställningar.

--------------------------------------------------------
Apache-config

Timeout 120
KeepAlive ON
MaxKeepAliveRequests 1000
KeepAliveTimeout 5

<IfModule mpm_prefork_module>
StartServers 12
MinSpareServers 10
MaxSpareServers 20
MaxClients 256
MaxRequestsPerChild 0
</IfModule>

-----------------------------------------------------------
MySql my.cnf

# * Fine Tuning
#
key_buffer = 256M
key_buffer_size = 512M
max_allowed_packet = 32M
thread_stack = 128K
thread_cache_size = 128

# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover = BACKUP

max_connections = 128
table_cache = 1024
thread_concurrency = 4
#

# Max heap size etc
max_heap_table_size = 1G
tmp_table_size = 512M


# * Query Cache Configuration
#
query_cache_type = 1
query_cache_limit = 16M
query_cache_size = 16M
join_buffer_size = 4M

-------------------------------------------------------------------------
Så här ser (en del av) top ut och antalet appache2 överstiger 50 processer.
Minnet är fullt 4Gb av 4Gb möjliga och loaden ligger högt (tyvärr kopierade jag inte det)

25897 mysql 20 0 1201m 301m 2496 S 26 7.6 236:54.86 mysqld
142 root 15 -5 0 0 0 R 14 0.0 0:18.64 kswapd0
14301 root 20 0 123m 2920 1296 S 8 0.1 239:59.88 StoreGrid
4760 www-data 20 0 286m 51m 19m R 6 1.3 0:03.96 apache2
4560 www-data 20 0 291m 72m 19m R 6 1.8 0:03.90 apache2
4710 www-data 20 0 268m 46m 19m D 6 1.2 0:03.48 apache2
4748 www-data 20 0 276m 53m 18m R 6 1.3 0:02.42 apache2
5655 www-data 20 0 243m 9200 2892 R 6 0.2 0:00.96 apache2
5660 www-data 20 0 253m 32m 17m R 6 0.8 0:01.88 apache2
................ fortsättning 50 apache2 pids.
-------------------------------------------------------------------------

Kör Debian 64bit
2 Cpu, 4Gbyte Ram
Apche2, php5 (med eaccelerator) och mysql server
Det borde väl räcka ganska långt.

T ex hur an jag se om jag utnyttja båda processorerna?
Kan man se det på något sätt? Är det någon inställning för att utnyttja båda eller sker det automatiskt?


Några tips för att få lite rulle på detta även vid belastning.

mvh
Azone

Jake.Nu 2010-10-05 19:13

Vad kör du för mjukvara på maskinen som använder MySQL?
Är det något du gjort själv? Hur är kvalitén på koden?

Björklund 2010-10-05 20:45

Slå på slow-query loggen och se vad som är långsamt.
Att gå dela webb och mysql bör gå snabbare, men kan också gå långsammare om man har dåliga frågor (som skickar mycket data över nätet).

Om det bara är CPU du behöver köp mer processor cores.
Hur det med diskprestandan?

Vad säger:

dd if=/dev/zero of=/root/test bs=1M count=1000

Edit: Är det bara 7.6% använt av MySQL?
Hur mycket "load" har du totalt?

Det är inte så att Apache inte släpper in fler användare?
Slå på mod_status och kolla.

Azone 2010-10-05 21:49

Testen säger detta: Är det bra eller dåligt?

dd if=/dev/zero of=/root/test bs=1M count=1000

1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 69.9753 s, 15.0 MB/s


---------------------------------------------------------------------------
mod_status

apache2ctl status
Apache Server Status for www.exempel.se


Server Version: Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny9 with
Suhosin-Patch mod_python/3.3.1 Python/2.5.2 mod_perl/2.0.4
Perl/v5.10.0

Server Built: Apr 20 2010 15:40:17
__________________________________________________ ________________

Current Time: Tuesday, 05-Oct-2010 21:55:46 CEST
Restart Time: Tuesday, 05-Oct-2010 21:53:07 CEST
Parent Server Generation: 0
Server uptime: 2 minutes 38 seconds
Total accesses: 549 - Total Traffic: 6.2 MB
CPU Usage: u33.68 s4.36 cu0 cs0 - 24.1% CPU load
3.47 requests/sec - 40.1 kB/second - 11.5 kB/request
2 requests currently being processed, 20 idle workers

__W________C____.____.._.._....................... ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............

Scoreboard Key:
"_" Waiting for Connection, "S" Starting up, "R" Reading Request,
"W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup,
"C" Closing connection, "L" Logging, "G" Gracefully finishing,
"I" Idle cleanup of worker, "." Open slot with no current process

---------------------------------------------------------------------------
top - 21:58:31 up 4:55, 2 users, load average: 0.78, 0.93, 1.52
Tasks: 105 total, 2 running, 97 sleeping, 5 stopped, 1 zombie
Cpu(s): 11.3%us, 4.3%sy, 0.0%ni, 83.9%id, 0.3%wa, 0.2%hi, 0.0%si, 0.0%st
Mem: 4065464k total, 3580680k used, 484784k free, 153804k buffers
Swap: 891568k total, 604k used, 890964k free, 2411404k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10333 mysql 20 0 815m 187m 5684 S 18 4.7 9:25.90 mysqld
11690 www-data 20 0 274m 57m 19m R 11 1.4 0:00.32 apache2
11653 www-data 20 0 0 0 0 Z 1 0.0 0:00.02 apache2 <defunct>
1 root 20 0 10316 748 620 S 0 0.0 0:01.94 init
2 root 15 -5 0 0 0 S 0 0.0 0:00.20 kthreadd
3 root RT -5 0 0 0 S 0 0.0 0:02.90 migration/0
4 root 15 -5 0 0 0 S 0 0.0 0:00.24 ksoftirqd/0
5 root RT -5 0 0 0 S 0 0.0 0:00.24 watchdog/0
6 root RT -5 0 0 0 S 0 0.0 0:03.52 migration/1
7 root 15 -5 0 0 0 S 0 0.0 0:00.50 ksoftirqd/1
8 root RT -5 0 0 0 S 0 0.0 0:00.02 watchdog/1
9 root 15 -5 0 0 0 S 0 0.0 0:02.60 events/0
10 root 15 -5 0 0 0 S 0 0.0 0:03.16 events/1
11 root 15 -5 0 0 0 S 0 0.0 0:00.88 khelper
46 root 15 -5 0 0 0 S 0 0.0 0:03.02 kblockd/0
47 root 15 -5 0 0 0 S 0 0.0 0:02.70 kblockd/1
49 root 15 -5 0 0 0 S 0 0.0 0:00.00 kacpid
50 root 15 -5 0 0 0 S 0 0.0 0:00.00 kacpi_notify
90 root 15 -5 0 0 0 S 0 0.0 0:00.00 ksuspend_usbd
96 root 15 -5 0 0 0 S 0 0.0 0:00.00 khubd
99 root 15 -5 0 0 0 S 0 0.0 0:00.00 kseriod
142 root 15 -5 0 0 0 S 0 0.0 0:00.10 kswapd0
143 root 15 -5 0 0 0 S 0 0.0 0:00.00 aio/0
144 root 15 -5 0 0 0 S 0 0.0 0:00.00 aio/1
650 root 15 -5 0 0 0 S 0 0.0 0:00.00 ata/0
651 root 15 -5 0 0 0 S 0 0.0 0:00.00 ata/1
652 root 15 -5 0 0 0 S 0 0.0 0:00.00 ata_aux
Just nu inte så farlig last iofs
----------------------------------------------------------------------------------

vad säger dessa tester? Är det bra eller dåligt?

Björklund 2010-10-05 22:10

Citat:

Ursprungligen postat av Azone (Inlägg 20372162)
Testen säger detta: Är det bra eller dåligt?

dd if=/dev/zero of=/root/test bs=1M count=1000

1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 69.9753 s, 15.0 MB/s


---------------------------------------------------------------------------
mod_status

apache2ctl status
Apache Server Status for www.exempel.se


Server Version: Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny9 with
Suhosin-Patch mod_python/3.3.1 Python/2.5.2 mod_perl/2.0.4
Perl/v5.10.0

Server Built: Apr 20 2010 15:40:17
__________________________________________________ ________________

Current Time: Tuesday, 05-Oct-2010 21:55:46 CEST
Restart Time: Tuesday, 05-Oct-2010 21:53:07 CEST
Parent Server Generation: 0
Server uptime: 2 minutes 38 seconds
Total accesses: 549 - Total Traffic: 6.2 MB
CPU Usage: u33.68 s4.36 cu0 cs0 - 24.1% CPU load
3.47 requests/sec - 40.1 kB/second - 11.5 kB/request
2 requests currently being processed, 20 idle workers

__W________C____.____.._.._....................... ..............
.................................................. ..............
.................................................. ..............
.................................................. ..............

Scoreboard Key:
"_" Waiting for Connection, "S" Starting up, "R" Reading Request,
"W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup,
"C" Closing connection, "L" Logging, "G" Gracefully finishing,
"I" Idle cleanup of worker, "." Open slot with no current process

---------------------------------------------------------------------------
top - 21:58:31 up 4:55, 2 users, load average: 0.78, 0.93, 1.52
Tasks: 105 total, 2 running, 97 sleeping, 5 stopped, 1 zombie
Cpu(s): 11.3%us, 4.3%sy, 0.0%ni, 83.9%id, 0.3%wa, 0.2%hi, 0.0%si, 0.0%st
Mem: 4065464k total, 3580680k used, 484784k free, 153804k buffers
Swap: 891568k total, 604k used, 890964k free, 2411404k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10333 mysql 20 0 815m 187m 5684 S 18 4.7 9:25.90 mysqld
11690 www-data 20 0 274m 57m 19m R 11 1.4 0:00.32 apache2
11653 www-data 20 0 0 0 0 Z 1 0.0 0:00.02 apache2 <defunct>
1 root 20 0 10316 748 620 S 0 0.0 0:01.94 init
2 root 15 -5 0 0 0 S 0 0.0 0:00.20 kthreadd
3 root RT -5 0 0 0 S 0 0.0 0:02.90 migration/0
4 root 15 -5 0 0 0 S 0 0.0 0:00.24 ksoftirqd/0
5 root RT -5 0 0 0 S 0 0.0 0:00.24 watchdog/0
6 root RT -5 0 0 0 S 0 0.0 0:03.52 migration/1
7 root 15 -5 0 0 0 S 0 0.0 0:00.50 ksoftirqd/1
8 root RT -5 0 0 0 S 0 0.0 0:00.02 watchdog/1
9 root 15 -5 0 0 0 S 0 0.0 0:02.60 events/0
10 root 15 -5 0 0 0 S 0 0.0 0:03.16 events/1
11 root 15 -5 0 0 0 S 0 0.0 0:00.88 khelper
46 root 15 -5 0 0 0 S 0 0.0 0:03.02 kblockd/0
47 root 15 -5 0 0 0 S 0 0.0 0:02.70 kblockd/1
49 root 15 -5 0 0 0 S 0 0.0 0:00.00 kacpid
50 root 15 -5 0 0 0 S 0 0.0 0:00.00 kacpi_notify
90 root 15 -5 0 0 0 S 0 0.0 0:00.00 ksuspend_usbd
96 root 15 -5 0 0 0 S 0 0.0 0:00.00 khubd
99 root 15 -5 0 0 0 S 0 0.0 0:00.00 kseriod
142 root 15 -5 0 0 0 S 0 0.0 0:00.10 kswapd0
143 root 15 -5 0 0 0 S 0 0.0 0:00.00 aio/0
144 root 15 -5 0 0 0 S 0 0.0 0:00.00 aio/1
650 root 15 -5 0 0 0 S 0 0.0 0:00.00 ata/0
651 root 15 -5 0 0 0 S 0 0.0 0:00.00 ata/1
652 root 15 -5 0 0 0 S 0 0.0 0:00.00 ata_aux
Just nu inte så farlig last iofs
----------------------------------------------------------------------------------

vad säger dessa tester? Är det bra eller dåligt?

Du har hopplöst dålig diskprestanda. Dock så har du inte hög belastning på din server. Så den dåliga diskprestandan borde inte spela någon roll.
Min gissning är du har något lås någonstans... Ex att du anropar externa källor som inte svarar tillräckligt fort.

Skrivprestanda på en av våra servrar:
# dd if=/dev/zero of=/root/test bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 1.16141 seconds, 903 MB/s

Dennis Holm 2010-10-05 23:24

Citat:

Ursprungligen postat av Björklund (Inlägg 20372165)
Du har hopplöst dålig diskprestanda. Dock så har du inte hög belastning på din server. Så den dåliga diskprestandan borde inte spela någon roll.
Min gissning är du har något lås någonstans... Ex att du anropar externa källor som inte svarar tillräckligt fort.

Skrivprestanda på en av våra servrar:
# dd if=/dev/zero of=/root/test bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 1.16141 seconds, 903 MB/s

vad har ni för diskar på er server om den pushar 1 gig/sec..

Azone 2010-10-05 23:33

Citat:

Ursprungligen postat av Björklund (Inlägg 20372165)
Du har hopplöst dålig diskprestanda. Dock så har du inte hög belastning på din server. Så den dåliga diskprestandan borde inte spela någon roll.
Min gissning är du har något lås någonstans... Ex att du anropar externa källor som inte svarar tillräckligt fort.

Skrivprestanda på en av våra servrar:
# dd if=/dev/zero of=/root/test bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 1.16141 seconds, 903 MB/s

Vad är externa källor? Vad menas med det? Menar du t ex reklambanners på sidan som är långsamma eller liknande?

Eller något på servern som anropar något? Va skulle det kunna vara tex ?

Björklund 2010-10-06 05:30

Citat:

Ursprungligen postat av Azone (Inlägg 20372187)
Vad är externa källor? Vad menas med det? Menar du t ex reklambanners på sidan som är långsamma eller liknande?

Eller något på servern som anropar något? Va skulle det kunna vara tex ?

Ex att ni kör curl-anrop eller liknande.

jonny 2010-10-06 07:55

Rent spontant känns ju inte 35 användare som särskilt mycket. Låter som det bör vara läge att gå igenom koden. Är det databasfrågorna som tar tid?

Westman 2010-10-06 08:11

På en virtuell Debian i prod (fixed size disk i VMware ESX mot SAN-disk) så får jag 153 MB/s och i test (thin provisioning disk i VMware server på lokal disk) så får jag 9,2 MB/s. Det får mig att tro att din leverantör kör med thin provisioning eller liknande vilket i kombination med en normalt belastad host reducerar diskprestanda till den nivån.

Citat:

Ursprungligen postat av mervinst (Inlägg 20372183)
vad har ni för diskar på er server om den pushar 1 gig/sec..

Låter inte så orimligt. Jag kommer upp i 588 MB/s på en 4-diskars RAID6 med 2.5" SAS-diskar.


Alla tider är GMT +2. Klockan är nu 18:53.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson