Sziasztok!
Kb. szószerint: PHP5, MariaDB és Apache2 van a gépen, de a load képes felmászni 30 felé. Ilyenkor már minden weboldal durván laggol.
Találtam egy hibás rewrite-ot, azt kiiktattam, de továbbra sem szűnt meg a hiba. Ha apache-ot újraindítom, a load visszaáll, 2 alá, de aztán visszakúszik.
Mi lehet a gond, merre érdemes keresgélni? Eddig nem csinált ilyet.
Köszi!
- 1328 megtekintés
Hozzászólások
Ha eddig nem csinált ilyet, akkor mi változott? :). iotop, hogy nem tekeri-e valami a hdd-t.
- A hozzászóláshoz be kell jelentkezni
Raktam Letsencrypt-et (azóta leszedtem, de az se oldotta meg).
iotop az első két helyezettként a mysql démont dobja fel...
- A hozzászóláshoz be kell jelentkezni
Ugye nem írtál magadnak wrappert a mysql-hez?
Nem zrikálásnak szánom, csak velem eljátszotta két német kolléga, hogy írtak maguknak egy testhezállót.
Olyat, ami minden sql elé beteszi a connectet, utána meg a eldobja. Nem gondolták, hogy ebből baj lehet. Azóta rossz szokásom, hogy rákérdezek erre is, ha úgy hozza a helyzet.
- A hozzászóláshoz be kell jelentkezni
Nem, semmi ilyesmit nem csináltam.
A VPS-en csak WP oldalak vannak, ámde hiába lövöldözöm le őket, az semmit nem old meg.
- A hozzászóláshoz be kell jelentkezni
Ha sok az insert és nem kötegelt, vagy elfogyott a ramja a mysql-nek akkor simán szétpörgeti a gépet.
- A hozzászóláshoz be kell jelentkezni
b@szki nem talalgatni meg barkobazni kell hanem elinditani a top-ot es ott le van irva feketen-feheren
apache-on belul raadasul ott a statusz modul, mariadb-ben meg a show full processlist
de ezek 15 eves tool-ok, konyorgom. errol forumtopicot nyitni?
- A hozzászóláshoz be kell jelentkezni
Legalább volt egy jó estéd...
Képzeld, első dolgom volt toppal és htoppal nézni, meg aztán jött az iotop is meg a show processlist is, de semmi kirívót nem látok, amit eddig ne csinált volna (4-5 query vagy insert), és mégse járt 11-nél a load.
Sajnálom, ha neked ez bántja a szemed, ezesetben lapozz tovább nyugodtan.
- A hozzászóláshoz be kell jelentkezni
System logban valami érdekes? Esetleg döglődő diszk, beragadt nfs mount, hasonlók?
- A hozzászóláshoz be kell jelentkezni
Semmi.
NFS van mountolva, de nincs beragadva.
Disk error sincs.
Minden gyanús plugint lelőttem a WP oldalon.
Kifogytam. :(
- A hozzászóláshoz be kell jelentkezni
Milyen filerendszert hasznalsz alatta?
A mount kimenetet esetleg idemasolnad?
Ha XFS - Red Hat/Centos default - erdemes toredezettseg mentesiteni idonkent.
Hasznalsz-e raid-et, ha igen milyent es hogyan?
dmesg|tail -n50 kimeneteben latsz valami erdekeset?
mysql-nel kapcsold be a slow-log reszt. Neha jol jon.
- A hozzászóláshoz be kell jelentkezni
Rackforest VPS.
Ext4, gondolom raid-en ül.
Mount kimenet:
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,relatime,size=10240k,nr_inodes=2056551,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,relatime,size=3293824k,mode=755)
/dev/vda1 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset,clone_children)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
tmpfs on /etc/machine-id type tmpfs (ro,relatime,size=3293824k,mode=755)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=23,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
mqueue on /dev/mqueue type mqueue (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime)
tmpfs on /mnt/tmp type tmpfs (rw,nosuid,nodev,noexec,nodiratime,relatime,size=2048k)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
rpc_pipefs on /run/rpc_pipefs type rpc_pipefs (rw,relatime)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=1646912k,mode=700,uid=1000,gid=1000)
dmesg | tail -50:
root@tegyjotadrienn:~# dmesg|tail -n50
[14927151.524679] br0: port 2(vethBVRU5F) entered forwarding state
[14927166.556025] br0: port 2(vethBVRU5F) entered forwarding state
[14927255.349402] br0: port 2(vethBVRU5F) entered disabled state
[14927255.484186] br0: port 2(vethBVRU5F) entered disabled state
[14927255.484622] device vethBVRU5F left promiscuous mode
[14927255.484630] br0: port 2(vethBVRU5F) entered disabled state
[14927289.945641] device vethXGHYY7 entered promiscuous mode
[14927289.945681] IPv6: ADDRCONF(NETDEV_UP): vethXGHYY7: link is not ready
[14927289.945684] br0: port 2(vethXGHYY7) entered forwarding state
[14927289.945686] br0: port 2(vethXGHYY7) entered forwarding state
[14927289.947655] br0: port 2(vethXGHYY7) entered disabled state
[14927290.009851] IPv6: ADDRCONF(NETDEV_CHANGE): vethXGHYY7: link becomes ready
[14927290.009886] br0: port 2(vethXGHYY7) entered forwarding state
[14927290.009890] br0: port 2(vethXGHYY7) entered forwarding state
[14927305.052019] br0: port 2(vethXGHYY7) entered forwarding state
[14927341.575137] br0: port 2(vethXGHYY7) entered disabled state
[14927341.664754] br0: port 2(vethXGHYY7) entered disabled state
[14927341.665221] device vethXGHYY7 left promiscuous mode
[14927341.665229] br0: port 2(vethXGHYY7) entered disabled state
[14927344.933465] device vethCQ2PD0 entered promiscuous mode
[14927344.933505] IPv6: ADDRCONF(NETDEV_UP): vethCQ2PD0: link is not ready
[14927344.933509] br0: port 2(vethCQ2PD0) entered forwarding state
[14927344.933512] br0: port 2(vethCQ2PD0) entered forwarding state
[14927344.935393] br0: port 2(vethCQ2PD0) entered disabled state
[14927344.973646] IPv6: ADDRCONF(NETDEV_CHANGE): vethCQ2PD0: link becomes ready
[14927344.973676] br0: port 2(vethCQ2PD0) entered forwarding state
[14927344.973679] br0: port 2(vethCQ2PD0) entered forwarding state
[14927360.028030] br0: port 2(vethCQ2PD0) entered forwarding state
[15029482.935497] br0: port 2(vethCQ2PD0) entered disabled state
[15029482.996876] br0: port 2(vethCQ2PD0) entered disabled state
[15029482.998528] device vethCQ2PD0 left promiscuous mode
[15029482.998534] br0: port 2(vethCQ2PD0) entered disabled state
[15029489.497897] device veth59YA8N entered promiscuous mode
[15029489.497938] IPv6: ADDRCONF(NETDEV_UP): veth59YA8N: link is not ready
[15029489.497941] br0: port 2(veth59YA8N) entered forwarding state
[15029489.497944] br0: port 2(veth59YA8N) entered forwarding state
[15029489.499796] br0: port 2(veth59YA8N) entered disabled state
[15029489.533614] IPv6: ADDRCONF(NETDEV_CHANGE): veth59YA8N: link becomes ready
[15029489.533649] br0: port 2(veth59YA8N) entered forwarding state
[15029489.533653] br0: port 2(veth59YA8N) entered forwarding state
[15029504.540020] br0: port 2(veth59YA8N) entered forwarding state
[15250435.327367] nf_conntrack: falling back to vmalloc.
[15250435.327649] nf_conntrack: falling back to vmalloc.
[15250435.427615] nf_conntrack: falling back to vmalloc.
[15250435.427738] nf_conntrack: falling back to vmalloc.
[15250464.516801] nf_conntrack: falling back to vmalloc.
[15250464.516951] nf_conntrack: falling back to vmalloc.
[15430464.521828] nf_conntrack: falling back to vmalloc.
[15653797.084258] nfsacl: server backup0.rackforest.hu not responding, still trying
[15653812.379588] nfsacl: server backup0.rackforest.hu OK
slow-log -ot bekapcsoltam:
root@tegyjotadrienn:/var/log/mysql# cat mysql-slow.log
/usr/sbin/mysqld, Version: 10.0.30-MariaDB-0+deb8u2 ((Debian)). started with:
Tcp port: 3306 Unix socket: /var/run/mysqld/mysqld.sock
Time Id Command Argument
# Time: 170718 22:48:46
# User@Host: tegyjothu[tegyjothu] @ localhost []
# Thread_id: 79 Schema: tegyjothu QC_hit: No
# Query_time: 10.800704 Lock_time: 0.000049 Rows_sent: 2509 Rows_examined: 1616852
use tegyjothu;
SET timestamp=1500410926;
SELECT option_name, option_value FROM tegyjot_options WHERE autoload = 'yes';
# Time: 170718 22:48:50
# User@Host: tegyjothu[tegyjothu] @ localhost []
# Thread_id: 86 Schema: tegyjothu QC_hit: No
# Query_time: 10.002664 Lock_time: 0.000068 Rows_sent: 2509 Rows_examined: 1616862
SET timestamp=1500410930;
SELECT option_name, option_value FROM tegyjot_options WHERE autoload = 'yes';
Nagyjából ennyi...
- A hozzászóláshoz be kell jelentkezni
mount, dmesg OK
A slow log egy nap vagy tobb utan lesz relevans. Ez a terhelesetol fugg a szervernek. http://www.ducea.com/2006/11/06/identifying-mysql-slow-queries/
top -n1|head -n20 meg esetleg
Hasznalsz valami ertelmesebb php cacheing mechanizmust?
mysqltuner mit mond egy hosszabb nap utan? Neha erdemes elgondolkodni a tippjein.
- A hozzászóláshoz be kell jelentkezni
"A slow log egy nap vagy tobb utan lesz relevans."
Ezt mire alapozod, vagy arra erted hogy kene egy preload indexekre, esetleg tablakra bufferhez?
Slow logban ott van hogy 10 masodpercig futott, ha esetleg nem volt meg akkor cache-ben de utana lefuttatja kezzel ujra es akkor is lassu akkor egy explain-el lehet elemezni, siman lehet csak annyi is, hogy tabla merete elerte az a szintet ahol abban keresve mar nem fer bele session bufferekbe a query.
- A hozzászóláshoz be kell jelentkezni
Arra, hogy a most latottak mellett hasznalattol es kornyezettol fuggoen meg barmi belekerulhet.
Persze ettol meg lehet javitani, amit talal.
- A hozzászóláshoz be kell jelentkezni
Igen lehet mellette mas is ami kesobb jon elo, de mar ennyibol is latszik, hogy ugyanaz a query 2-szer egymas utan is 10 sec-ig futott pedig "csak" par ezer sort adott vissza kb masfelmilliobol.
Ez igy aligha jo, vagy a query-t kell atirni vagy a mysql buffer ertekeket modositani a megnovekedett tabla merethez vagy a tablabol torolni a felesleges/regi elemeket.
Ha ez meg van akkor jo esellyel hasonlo okra visszavezetheto lesz a tobbi hiba is ha elojon masik ami utobbi idoben jelentkezett mysql lassusag es ugyanarra az analikitara meg lehet oldani.
- A hozzászóláshoz be kell jelentkezni
autoload mezon nincs index.
Lattam mar ilyet, valamelyik plugin feltolti az options tablat sokezer sorral, autoload ertekere szur, de az index az lemaradt rola.
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
Csak boolean ertekre altalaban nincs ertelme indexet tenni, mert ugyse fogja hasznalni.
Ha tobb mezobol all az index vagy covering index, netan ha az az allapot amit altalaban keresel a boolean-ban ritkan fordul elo akkor lehet haszna, de explain-el ki lehet probalni ezeket.
Nem szabad esz nelkul se indexet pakolni mindenre hatha jo lesz alapon.
- A hozzászóláshoz be kell jelentkezni
Konkretan a field egy varchar(20), most neztem meg.
Az az idiota aki a WP plugint irta, varchar-ban tarol egy yes/no-t es nem rakott ra indexet.
Es messzirol buzlik explain nelkul is a slow log:
Query_time: 10.002664 Lock_time: 0.000068 Rows_sent: 2509 Rows_examined: 1616862
- A hozzászóláshoz be kell jelentkezni
Nem ismerem WP, de ha boolean erteket varchar-ban tenyleg akkor az olyan is.
Mondjuk jelen esetben meg gyorsithat is rajta az index mert 1.6M rekorbol csak 2.5k olyan akkor eselyes hogy hasznalni fogja az indexet, az mas kerdes hogy egyebkent milyen a plugin...
- A hozzászóláshoz be kell jelentkezni
Az egész wp egy tákolt foshalom. az emberek meg a hype után elkezdték használni, a rendszerek meg szenvednek...
// Happy debugging, suckers
#define true (rand() > 10)
- A hozzászóláshoz be kell jelentkezni
Amit javaslok meg, mert az index meg fogja oldani a problemat, de sok potencial van meg itt:
- PHP Zend opcache-et bekapcsolni
- MySQL/MariaDB csereje Percona Forkra
- MySQL bufferek (join, sort, tmp stb), query cache emelese
- Wordpress total cache vagy hasonlo hasznalata memcached-vel (alapertelmezetten az APC/APCu-t fogja ajanlani, de ne dolj be neki!)
- Apache helyett NGINX+PHP-FPM
iowait, IOps ertekek elemzese, io scheduler valtas, halozati kernel ertekek stb.
Tegyel fel egy netdatat, a lenyeget meg fogja mondani:
https://github.com/firehol/netdata
- A hozzászóláshoz be kell jelentkezni
- Milyen erdemi valtozast varsz percona-tol hogy megeri arra cserelni (ilyesmi esetben)?
- apache is tud php-fpm-et hasznalni es php eseten alig van sebessegkulonbseg apache-nginx kozott, vagy wordpress ki tud hasznalni valamit nginx-bol ami miatt megerheti?
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni