Титла: Помощ за оптимизация на сървър
Публикувано от: Ali Nebi в May 20, 2008, 00:14
Здравейте, бих искал да ви помоля ако може да ми помогнете да оптимизирам възможно най-добре един сървър. На него е инсталиран CentOS 5 и на него имаме работещи apache 2 и mysql. Сайтът, който се хоства на него използва Innodb engine за таблиците в базата данни. Проблемът е следният, apache процесите използват повече процесор и load avarage от top скача нагоре. Необходимо ми е да оптимизирам системата да ползва по-малко процесор, защотот сайтът и системата стават бавни. Ето какво показва топ: Примерен код | top - 23:11:41 up 11:24, 6 users, load average: 2.04, 2.08, 2.06 Tasks: 130 total, 1 running, 129 sleeping, 0 stopped, 0 zombie Cpu(s): 34.3%us, 6.8%sy, 0.0%ni, 52.1%id, 6.8%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 4051316k total, 3745052k used, 306264k free, 151096k buffers Swap: 6291448k total, 69640k used, 6221808k free, 1701868k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 19301 mysql 15 0 2185m 531m 4424 S 2 13.4 0:42.53 mysqld 2174 root 19 0 1347m 440m 8960 S 0 11.1 5:32.76 java 19551 apache 15 0 435m 110m 41m S 0 2.8 0:30.54 httpd 19554 apache 15 0 411m 85m 41m S 0 2.2 0:37.34 httpd 19587 apache 15 0 412m 84m 40m S 0 2.1 0:42.91 httpd 19568 apache 16 0 409m 83m 41m D 82 2.1 0:29.80 httpd 19569 apache 15 0 408m 83m 41m S 0 2.1 0:49.39 httpd 19589 apache 15 0 409m 82m 40m S 0 2.1 0:17.50 httpd 19559 apache 15 0 409m 82m 40m S 0 2.1 0:34.86 httpd 19578 apache 15 0 409m 81m 40m S 0 2.1 0:34.18 httpd 19553 apache 15 0 407m 80m 40m S 0 2.0 0:08.89 httpd 19588 apache 15 0 406m 79m 40m S 0 2.0 0:13.91 httpd 19552 apache 15 0 405m 79m 40m S 0 2.0 0:27.38 httpd 19627 apache 15 0 403m 77m 41m S 0 2.0 0:09.87 httpd 19563 apache 15 0 404m 77m 41m S 0 2.0 0:34.15 httpd 19571 apache 15 0 399m 74m 42m S 0 1.9 0:11.61 httpd 19561 apache 15 0 398m 72m 42m S 0 1.8 0:45.43 httpd 19550 apache 15 0 398m 72m 40m S 0 1.8 0:13.68 httpd 19586 apache 15 0 399m 71m 40m S 0 1.8 0:30.43 httpd 19567 apache 15 0 399m 71m 40m S 0 1.8 0:31.72 httpd 19570 apache 15 0 396m 71m 41m S 0 1.8 0:16.42 httpd 19626 apache 15 0 396m 70m 40m S 0 1.8 0:18.85 httpd 2474 mailman 18 0 186m 47m 3164 S 0 1.2 0:10.98 python 2472 mailman 18 0 184m 46m 3148 S 0 1.2 0:06.39 python 2477 mailman 15 0 183m 45m 3156 S 0 1.2 0:10.07 python 2476 mailman 15 0 180m 42m 3220 S 0 1.1 0:04.82 python 18784 root 18 0 383m 26m 9008 S 0 0.7 0:00.54 httpd 19508 root 15 0 47980 16m 1832 S 0 0.4 0:01.47 awstats.pl 2475 mailman 18 0 147m 9860 3092 S 0 0.2 0:01.50 python 2473 mailman 18 0 147m 9824 3092 S 0 0.2 0:01.37 python
|
Това е резултат от dstats
Примерен код | 76 21 1 0 0 0| 2.2 2.1 2.1|1847M 147M 1662M 300M|8087B 34k| 2 0 0| 68M 6076M|1055 805 49 9 42 1 0 0| 2.1 2.1 2.1|1847M 147M 1662M 300M|5231B 41k| 2 0 0| 68M 6076M|1075 2139 ----total-cpu-usage---- ---load-avg--- ------memory-usage----- -net/total- ---procs--- -swp/total- ---system-- usr sys idl wai hiq siq| 1m 5m 15m | used buff cach free| recv send|run blk new| used free| int csw 22 6 72 1 0 0| 2.1 2.1 2.1|1847M 147M 1662M 300M|4303B 19k| 1 0 0| 68M 6076M|1074 953 0 0 100 0 0 0| 2.1 2.1 2.1|1847M 147M 1662M 300M|2094B 19k| 1 0 0| 68M 6076M|1024 131 33 9 55 3 0 0| 2.1 2.1 2.1|1848M 147M 1662M 299M|3208B 19k| 3 0 0| 68M 6076M|1062 863 83 16 0 0 0 0| 2.1 2.1 2.1|1852M 147M 1662M 295M|4198B 20k| 8 0 0| 68M 6076M|1049 1320 89 12 0 0 0 0| 2.3 2.1 2.1|1855M 147M 1662M 292M|3577B 21k| 6 0 0| 68M 6076M|1060 2542 80 20 0 0 0 1| 2.3 2.1 2.1|1853M 147M 1662M 294M|4650B 53k| 3 0 0| 68M 6076M|1067 2618 38 11 51 1 0 0| 2.3 2.1 2.1|1848M 147M 1662M 299M|9861B 76k| 4 0 0| 68M 6076M|1103 709 82 17 2 0 0 0| 2.3 2.1 2.1|1852M 147M 1662M 295M|4569B 30k| 3 0 0| 68M 6076M|1085 1581 57 14 29 0 0 0| 2.3 2.1 2.1|1853M 147M 1662M 294M|5086B 34k| 3 0 0| 68M 6076M|1061 2051 60 11 29 1 0 0| 2.2 2.1 2.1|1846M 148M 1662M 301M|6029B 50k| 2 0 0| 68M 6076M|1173 1377 50 12 37 0 0 0| 2.2 2.1 2.1|1846M 148M 1662M 301M|7440B 58k| 2 0 0| 68M 6076M|1067 1785 12 3 84 1 0 0| 2.2 2.1 2.1|1847M 148M 1662M 299M|6211B 67k| 0 0 0| 68M 6076M|1092 463 18 5 74 1 0 0| 2.2 2.1 2.1|1848M 148M 1662M 299M|5356B 27k| 0 0 0| 68M 6076M|1082 810 0 1 100 0 0 0| 2.2 2.1 2.1|1847M 148M 1662M 299M|6042B 70k| 0 0 0| 68M 6076M|1085 227 2 2 97 0 0 0| 2 2.1 2.1|1847M 148M 1662M 299M|6088B 53k| 2 0 0| 68M 6076M|1076 348 39 10 49 2 0 0| 2 2.1 2.1|1848M 148M 1662M 299M|8597B 51k| 1 0 0| 68M 6076M|1082 742 44 6 50 0 0 0| 2 2.1 2.1|1848M 148M 1662M 299M|7495B 68k| 1 0 0| 68M 6076M|1071 1449 30 8 61 2 0 0| 2 2.1 2.1|1848M 148M 1662M 299M|4438B 42k| 0 2 0| 68M 6076M|1128 1226 13 3 46 39 0 0| 2 2.1 2.1|1858M 148M 1662M 289M|8227B 37k| 1 0 0| 68M 6076M|1236 338
|
Имам следната конфигурация на apache:
Примерен код | # # Timeout: The number of seconds before receives and sends time out. # Timeout 100
# # KeepAlive: Whether or not to allow persistent connections (more than # one request per connection). Set to "Off" to deactivate. # KeepAlive On
# # MaxKeepAliveRequests: The maximum number of requests to allow # during a persistent connection. Set to 0 to allow an unlimited amount. # We recommend you leave this number high, for maximum performance. # MaxKeepAliveRequests 100
# # KeepAliveTimeout: Number of seconds to wait for the next request from the # same client on the same connection. # KeepAliveTimeout 2
## ## Server-Pool Size Regulation (MPM specific) ##
# prefork MPM # StartServers: number of server processes to start # MinSpareServers: minimum number of server processes which are kept spare # MaxSpareServers: maximum number of server processes which are kept spare # ServerLimit: maximum value for MaxClients for the lifetime of the server # MaxClients: maximum number of server processes allowed to start # MaxRequestsPerChild: maximum number of requests a server process serves <IfModule prefork.c> StartServers 5 MinSpareServers 5 MaxSpareServers 20 ServerLimit 100 MaxClients 100 MaxRequestsPerChild 4000 </IfModule>
|
И това е за my.cnf
Примерен код | [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock # Default to using old password format for compatibility with mysql 3.x # clients (those using the mysqlclient10 compatibility package). old_passwords=0 bind-address=127.0.0.1 max_connections=300 # Set MyISAM parameters key_buffer_size=3M tmp_table_size=16M # Set InnoDB parameters innodb_file_per_table # Set buffer pool size to 50 - 80% of availiable memory. innodb_buffer_pool_size=1500M innodb_additional_mem_pool_size=50M # Set the log file size to about 25% of the buffer pool size. #innodb_log_file_size=5M #innodb_log_buffer_size=1M table_cache=1024 #sort_buffer_size=3M query_cache_type=1 query_cache_limit=1M query_cache_size=40M net_read_timeout=120 #long_query_time=10 #log_warnings=2 #log_slow_queries=/var/log/mysql/slow-queries.log collation_server=utf8_unicode_ci character_set_server=utf8
[mysql] default-character-set=utf8
[mysqldump] default-character-set=utf8
[mysql.server] user=mysql basedir=/var/lib
[mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
|
Моля ви се да ми помогнете да разреша този проблем.
Ако имате нужда от още информация ще ви я дам.
Титла: Помощ за оптимизация на сървър
Публикувано от: VladSun в May 20, 2008, 00:40
Титла: Помощ за оптимизация на сървър
Публикувано от: Ali Nebi в May 20, 2008, 01:24
Това ще реши от части проблемите, но целта е да я конфигурирам тази машина както трябва.
Титла: Помощ за оптимизация на сървър
Публикувано от: VladSun в May 20, 2008, 01:40
Струва ми се, че си дал прекалено много RAM на InnoDB: innodb_buffer_pool_size=1500M
трябва да е малко над големината на ДБ таблиците. Да не би Апачето да влиза в swap-a заради това?
Титла: Помощ за оптимизация на сървър
Публикувано от: VladSun в May 20, 2008, 01:45
И провери какво ползваш за innodb_flush_method - трябва да е O_DIRECT.
Титла: Помощ за оптимизация на сървър
Публикувано от: Ali Nebi в May 20, 2008, 02:35
Благодаря ти за отговорите.
ами innodb_flush_method е този, който е default O_DSYNC();
Интересното е, че има свободна памет, но апачето продължава да ползва повече процесор. А какво виждам, ползването на swap е най-вероятно заради метода.
Титла: Помощ за оптимизация на сървър
Публикувано от: VladSun в May 20, 2008, 03:23
Ако не е тайна - какво се пуснато на сайта - т.е. каква система ползваш, език и т.н.?
Титла: Помощ за оптимизация на сървър
Публикувано от: Ali Nebi в May 20, 2008, 07:24
Не е тайна разбира се, ами ползваме ezpublish framework, на php е.
Титла: Помощ за оптимизация на сървър
Публикувано от: teleport в May 20, 2008, 08:41
apache-то не ползва cpu, прави го php-то. Освен това "load average" е малко заблуждаващо: " The load average is the sum of the run queue length and the number of jobs currently running on the CPUs". Т.е. ако имаш едноядрен процесор load average >= 2 е зле, но ако имаш 4 ядрен процесор означава че 2 от ядрата в момента са свободни и нищо не правят.
За оптимизация на centos 5 първото нещо е да провериш дали irqbalance работи и ако не да го инсталираш/пуснеш: "yum -y install irqbalance; chkconfig irqbalance on; service irqbalance start". Тука има една тънкост. В Centos 5 irqbalance работи само ако имаш поне 2 ядра и ако ядрата имат отделен cache. Примерно на процесор "Intel® Core™2 CPU 4300 @ 1.80GHz" irqbalance директно прекратява работа защото двете ядра са с общ cache.
Проблем също може да е iowait. 6.8% не е много, но е достатъчно да за вкарва apache процес в dead състояние.
Според top най-много процесор ползва "java": 5 и половина часа от общ uptime 11 часа. Не съм запознат с ezpublish и дали ползва java-та, но определено java-та ползва най-много ресурси в случая.
В изискванията на ezpublish не пише нищо за java, така че явно във вашия случай се ползва за нещо друго.
Титла: Помощ за оптимизация на сървър
Публикувано от: Ali Nebi в May 20, 2008, 09:45
Здравей, благодаря за отговора. Проверих, irqbalance е инсталиран и стартиран. Ето това е информацията за процесора: /proc/cpuinfo Цитат | processor : 0 vendor_id : AuthenticAMD cpu family : 15 model : 35 model name : Dual Core AMD Opteron Processor 175 stepping : 2 cpu MHz : 2210.220 cache size : 1024 KB physical id : 0 siblings : 2 core id : 0 cpu cores : 2 fpu : yes fpu_exception : yes cpuid level : 1 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt lm 3dnowext 3d now pni lahf_lm cmp_legacy bogomips : 4421.69 TLB size : 1024 4K pages clflush size : 64 cache_alignment : 64 address sizes : 40 bits physical, 48 bits virtual power management: ts fid vid ttp
processor : 1 vendor_id : AuthenticAMD cpu family : 15 model : 35 model name : Dual Core AMD Opteron Processor 175 stepping : 2 cpu MHz : 2210.220 cache size : 1024 KB physical id : 0 siblings : 2 core id : 1 cpu cores : 2 fpu : yes fpu_exception : yes cpuid level : 1 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt lm 3dnowext 3dnow pni lahf_lm cmp_ legacy bogomips : 4419.77 TLB size : 1024 4K pages clflush size : 64 cache_alignment : 64 address sizes : 40 bits physical, 48 bits virtual power management: ts fid vid ttp
|
Java та се ползва от един сървис наречен solr. Използваме го за индексиране, но обикновено той се стратира всеки час за около 5 мин и спира.
Титла: Помощ за оптимизация на сървър
Публикувано от: gat3way в May 20, 2008, 11:13
memory sizing-a нещо не е като хората. Колко е memory_limit на PHP? java процеса с какъв heap size се вдига (-Xmx параметъра)? Защо apache процесите "изяждат" толкова много памет?
Титла: Помощ за оптимизация на сървър
Публикувано от: Ali Nebi в May 20, 2008, 11:26
и аз забелязвам, че когота load avarage скача, свободната памет намаля, макар че има cached memory достатъчно.
memory_limit е 128M
така като гледам java-та не е зададена с параметъра за макс. памет.
За апаче процесите съм дал MaxRequestPerChild да е 4000 а MaxSpareServer го направих 50. Намалих даже малко паметта, която се ползва от mysql, но все още продължава да се получава същия ефект. И аз мисля, че апаче процесите не трябва да ползват толкова рам.
Титла: Помощ за оптимизация на сървър
Публикувано от: gat3way в May 20, 2008, 11:54
Ми то не се налага да ползва максималната памет. jvm-то обаче като го запалиш си malloc-ва това, указано като големина на heap-а. Като гледам му е оказано нещо около 1200-1300 мегабайта. Машината има 4 гигабайта памет. Нека 2gb ти ги взема mysql-a, 400-500 ти ги ползва apache-a (предполагам форкнатите процеси си споделят голяма част от паметта, COW). Останалите процеси и ядрото примерно ядат още около 500 мегабайта (гледам има питонски процеси някакви). Общо това прави към 3 гб. Когато се вдигне твоят java процес с heap size=1.2gb, каквото там е имало pagecache/vfs cache се evict-ва, но въпреки всичко паметта не достига и затва по-"неизползваните" страници в паметта влизат в суоп-а. load-а се вдига поради няколко причини в тази ситуация - първо имаш повече page faults и вадене на страници от суоп-а в паметта и обратно, което са си бавни дискови операции. От друга страна, "изхвърлената кеширана информация" води дотам че следващите дискови операции ще са свързани с повече disk I/O, съответно процесите ще бъдат за малко повече време в uninterruptable sleep и ерго в runqueue. Затова ако можеш намали това разхищение. "кажи" на mysql-a да ползва по-малко памет, виж ако можеш да разкараш ненужни apache модули, намали heap size-a на джавата, ако има вариант оптимизирай по някакъв начин PHP кода. Или (например) сложи някоя допълнителна банка памет. Въобще не е казано, че ако нещо може да ползва повече оперативна памет, то ще върви по-бързо. В общият случай е така, но в гранични случаи, когато РАМ-та попривърши и почнеш да влизаш леко в суоп-а, нещата са различни 
Титла: Помощ за оптимизация на сървър
Публикувано от: Ali Nebi в May 20, 2008, 12:15
Да, мисля че си прав. Не бях обърнал внимание, че джавата си заделя толкова heap. Паметта за mysql го намалих и сега heap за него е 1500-1600 МБ. Това помогна от части, сега ще намаля и джавата.
Титла: Помощ за оптимизация на сървър
Публикувано от: VladSun в May 20, 2008, 13:43
Цитат (ferrari_m @ Май 20 2008,02:35) | ами innodb_flush_method е този, който е default O_DSYNC(); |
"Големите глави" казват да се използва O_DIRECT за да не се получава повторно и излишно кеширане от страна на ОС-а.
Титла: Помощ за оптимизация на сървър
Публикувано от: Ali Nebi в May 20, 2008, 14:32
моля ви се някой ако може да помогне спешно да конфигурираме този сървър, че ще загубим този клиент, а не трябва. Ще получите съответното заплащане срещу услугата.
може да ви дадем достъп до сървъра и да опитате да го конфигурирате.
Възможно ли е ?
Титла: Помощ за оптимизация на сървър
Публикувано от: Ali Nebi в May 20, 2008, 15:29
Друго, което също искам да питам е дали е необходимо да се пресъздават на ново базите данни като сменя flush метода или не е необходимо?
Титла: Помощ за оптимизация на сървър
Публикувано от: gat3way в May 20, 2008, 15:30
Аааа, как ще пресъздаваш базата, стига глупости 
Титла: Помощ за оптимизация на сървър
Публикувано от: Ali Nebi в May 20, 2008, 15:53
Ограничих джавата и това помогна доста. Все още е високо използването, но не както преди това. Сега трябва да конфигугирам другите неща по-добре. Сега load avarage не скача колкото преди промените.
Титла: Помощ за оптимизация на сървър
Публикувано от: Ali Nebi в May 22, 2008, 21:44
Оказа се, че е един от ботовете на гугъл, който използваше прекалено много поцесорно време. Сега системата е по-добре но все още се претоварва малко повече. Понякога load avarage стига до 3.5 със следната конфигурация. Моля ако може да ми предложите кои параметри мога да променя и да я направя по-стабилна. Това, което също прави проблем, е че mysql от време на време използва доста процесор, което заедно с apache кара системата да се товари повече. Ето това е конфигурацията на apache в момента. Примерен код | # # Timeout: The number of seconds before receives and sends time out. # Timeout 100
# # KeepAlive: Whether or not to allow persistent connections (more than # one request per connection). Set to "Off" to deactivate. # KeepAlive On
# # MaxKeepAliveRequests: The maximum number of requests to allow # during a persistent connection. Set to 0 to allow an unlimited amount. # We recommend you leave this number high, for maximum performance. # MaxKeepAliveRequests 1000
# # KeepAliveTimeout: Number of seconds to wait for the next request from the # same client on the same connection. # KeepAliveTimeout 2
## ## Server-Pool Size Regulation (MPM specific) ##
# prefork MPM # StartServers: number of server processes to start # MinSpareServers: minimum number of server processes which are kept spare # MaxSpareServers: maximum number of server processes which are kept spare # ServerLimit: maximum value for MaxClients for the lifetime of the server # MaxClients: maximum number of server processes allowed to start # MaxRequestsPerChild: maximum number of requests a server process serves <IfModule prefork.c> StartServers 25 MinSpareServers 10 MaxSpareServers 50 ServerLimit 100 MaxClients 100 MaxRequestsPerChild 15000 </IfModule>
|
Може да ви се сторят малко странни някои стойности, но просто тествах и за сега системата се държи най-добре с тези, но все пак би било добре ако може да препоръчате как да ги променя, така че да получа оптималност.
my.cnf
Примерен код | [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock # Default to using old password format for compatibility with mysql 3.x # clients (those using the mysqlclient10 compatibility package). old_passwords=0 bind-address=127.0.0.1 max_connections=300 # Set MyISAM parameters key_buffer_size=3M tmp_table_size=16M # Set InnoDB parameters innodb_file_per_table # Set buffer pool size to 50 - 80% of availiable memory. innodb_buffer_pool_size=1000M innodb_additional_mem_pool_size=50M #innodb_flush_method=O_DIRECT # Set the log file size to about 25% of the buffer pool size. #innodb_log_file_size=5M #innodb_log_buffer_size=1M table_cache=1024 #sort_buffer_size=3M query_cache_type=1 query_cache_limit=1M query_cache_size=30M net_read_timeout=120 #long_query_time=10 #log_warnings=2 #log_slow_queries=/var/log/mysql/slow-queries.log collation_server=utf8_unicode_ci character_set_server=utf8
[mysql] default-character-set=utf8
[mysqldump] default-character-set=utf8
[mysql.server] user=mysql basedir=/var/lib
[mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
|
dstat output:
Примерен код | 0 1 99 1 0 0| 1.8 2.1 2.3|2306M 88M 1025M 537M| 15k 24k| 0 0 0| 122M 6021M|1073 172 0 0 98 1 0 0| 1.8 2.1 2.3|2306M 88M 1025M 537M|1691B 21k| 0 0 0| 122M 6021M|1060 141 26 7 66 1 0 0| 1.8 2.1 2.3|2306M 88M 1025M 537M| 927B 1124B| 1 0 0| 122M 6021M|1027 616 44 6 43 6 0 0| 1.8 2.1 2.3|2306M 88M 1025M 537M| 536B 2926B| 1 0 0| 122M 6021M|1196 866 49 13 38 0 0 0| 1.8 2.1 2.3|2308M 88M 1025M 534M| 338B 18k| 1 0 0| 122M 6021M|1021 1821 32 13 55 0 0 0| 1.8 2.1 2.3|2306M 88M 1025M 537M|2315B 13k| 1 0 0| 122M 6021M|1038 600 41 10 50 0 0 0| 1.8 2.1 2.3|2306M 88M 1025M 537M| 752B 6672B| 1 0 0| 122M 6021M|1022 695 45 6 49 1 0 0| 1.8 2.1 2.3|2306M 88M 1025M 537M|1615B 5959B| 1 0 0| 122M 6021M|1029 1677 33 8 59 1 0 0| 1.8 2.1 2.3|2306M 88M 1025M 537M|1054B 968B| 1 0 0| 122M 6021M|1036 1698 3 1 95 0 0 0| 1.6 2 2.3|2306M 88M 1025M 537M|2481B 30k| 2 0 0| 122M 6021M|1048 210 61 18 20 2 0 0| 1.6 2 2.3|2306M 88M 1025M 537M|2560B 4390B| 5 0 0| 122M 6021M|1036 1245 88 12 0 0 0 0| 1.6 2 2.3|2307M 88M 1025M 536M|2695B 1433B| 12 0 0| 122M 6021M|1014 2206 78 22 0 0 0 1| 1.6 2 2.3|2306M 88M 1025M 537M| 810B 9771B| 6 0 0| 122M 6021M|1056 1188 86 15 0 0 0 0| 1.6 2 2.3|2310M 88M 1025M 532M|2008B 8749B| 16 0 0| 122M 6021M|1019 1411 77 23 0 0 0 0| 2.3 2.1 2.4|2319M 88M 1025M 523M|1929B 16k| 10 0 0| 122M 6021M|1024 1868 81 19 0 0 0 0| 2.3 2.1 2.4|2325M 88M 1025M 517M| 909B 6562B| 12 0 0| 122M 6021M|1021 1502 83 17 0 0 0 0| 2.3 2.1 2.4|2329M 88M 1025M 514M| 818B 3826B| 10 0 0| 122M 6021M|1009 1831 82 17 0 0 0 0| 2.3 2.1 2.4|2335M 88M 1025M 507M|1133B 784B| 14 0 0| 122M 6021M|1035 2253 81 19 0 0 0 0| 2.3 2.1 2.4|2347M 88M 1025M 496M|5109B 20k| 5 0 1| 122M 6021M|1063 1917 85 14 0 0 0 0| 2.9 2.3 2.4|2331M 88M 1025M 511M|3441B 83k| 6 0 0| 122M 6021M|1093 2186 86 15 0 0 0 0| 2.9 2.3 2.4|2327M 88M 1025M 515M|4960B 61k| 3 0 0| 122M 6021M|1092 1847 70 15 16 0 0 0| 2.9 2.3 2.4|2320M 88M 1025M 523M|4788B 59k| 2 0 0| 122M 6021M|1038 2317 25 7 68 0 0 0| 2.9 2.3 2.4|2321M 88M 1025M 522M|4617B 38k| 2 0 0| 122M 6021M|1063 703 41 10 50 0 0 0| 2.9 2.3 2.4|2325M 88M 1025M 518M|4213B 76k| 2 0 0| 122M 6021M|1029 683 44 6 49 0 0 0| 2.8 2.3 2.4|2326M 88M 1025M 516M|2768B 31k| 2 0 0| 122M 6021M|1031 2002 ----total-cpu-usage---- ---load-avg--- ------memory-usage----- -net/total- ---procs--- -swp/total- ---system-- usr sys idl wai hiq siq| 1m 5m 15m | used buff cach free| recv send|run blk new| used free| int csw 68 17 16 1 0 0| 2.8 2.3 2.4|2324M 88M 1025M 519M|2906B 23k| 5 0 0| 122M 6021M|1054 2513 84 17 0 0 0 0| 2.8 2.3 2.4|2330M 88M 1025M 512M|4795B 35k| 7 0 0| 122M 6021M|1046 2108 79 21 0 0 0 0| 2.8 2.3 2.4|2332M 88M 1025M 511M|5198B 22k| 12 0 0| 122M 6021M|1048 1432 62 16 22 1 0 1| 2.8 2.3 2.4|2323M 88M 1025M 520M|4844B 38k| 3 0 0| 122M 6021M|1111 1770 40 11 50 0 0 0| 2.6 2.2 2.4|2327M 89M 1026M 516M|6348B 36k| 2 0 2| 122M 6021M|1048 1925 35 10 55 0 0 0| 2.6 2.2 2.4|2322M 89M 1026M 520M|2588B 7360B| 1 0 0| 122M 6021M|1022 477 17 6 77 0 0 0| 2.6 2.2 2.4|2322M 89M 1026M 520M|2220B 21k| 1 0 0| 122M 6021M|1043 531 0 0 100 0 0 0| 2.6 2.2 2.4|2322M 89M 1026M 520M|3587B 24k| 1 0 0| 122M 6021M|1038 132 22 10 67 0 0 0| 2.6 2.2 2.4|2322M 89M 1026M 520M|1892B 8625B| 1 0 0| 122M 6021M|1042 491 43 12 43 2 1 0| 2.5 2.2 2.4|2322M 89M 1026M 520M|2660B 33k| 4 0 0| 122M 6021M|1044 923 83 17 0 0 0 0| 2.5 2.2 2.4|2327M 89M 1026M 515M|2877B 4659B| 9 0 0| 122M 6021M|1020 1316 79 21 0 0 0 0| 2.5 2.2 2.4|2331M 89M 1026M 511M|4465B 43k| 5 0 0| 122M 6021M|1063 2207 87 12 0 0 0 0| 2.5 2.2 2.4|2339M 89M 1026M 503M|5910B 57k| 6 0 0| 122M 6021M|1055 1990 74 17 8 0 0 0| 2.5 2.2 2.4|2332M 89M 1026M 510M|4242B 21k| 2 0 0| 122M 6021M|1252 2689 26 7 66 2 0 0| 2.4 2.2 2.4|2331M 89M 1026M 511M|4415B 53k| 2 0 0| 122M 6021M|1071 1092 49 12 38 0 0 0| 2.4 2.2 2.4|2331M 89M 1026M 511M|5817B 27k| 2 0 0| 122M 6021M|1030 947 45 6 50 0 0 0| 2.4 2.2 2.4|2331M 89M 1026M 511M| 460B 12k| 2 0 0| 122M 6021M|1012 1713 29 7 64 0 0 0| 2.4 2.2 2.4|2331M 89M 1026M 511M| 326B 4984B| 1 0 0| 122M 6021M|1031 1445 0 1 78 21 0 0| 2.4 2.2 2.4|2331M 89M 1026M 511M|1966B 20k| 1 0 0| 122M 6021M|1282 141 0 0 100 0 0 0| 2.2 2.2 2.4|2331M 89M 1026M 511M| 70B 438B| 1 0 0| 122M 6021M|1030 88 25 7 67 1 0 0| 2.2 2.2 2.4|2331M 89M 1026M 511M| 556B 4648B| 2 0 0| 122M 6021M|1048 588 72 16 13 0 0 0| 2.2 2.2 2.4|2332M 89M 1026M 510M|4263B 22k| 4 0 2| 122M 6021M|1046 1402 81 18 0 1 0 0| 2.2 2.2 2.4|2331M 89M 1026M 511M|2054B 10k| 7 0 0| 122M 6021M|1034 1803 77 14 9 0 0 0| 2.2 2.2 2.4|2331M 89M 1026M 511M|4505B 14k| 3 0 0| 122M 6021M|1103 1945
|
top:
Примерен код | top - 20:27:35 up 3 days, 8:40, 3 users, load average: 2.31, 2.50, 2.56 Tasks: 135 total, 1 running, 134 sleeping, 0 stopped, 0 zombie Cpu(s): 37.3%us, 11.8%sy, 0.0%ni, 50.4%id, 0.5%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 4051316k total, 3634788k used, 416528k free, 86980k buffers Swap: 6291448k total, 125436k used, 6166012k free, 999584k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 31241 apache 16 0 400m 89m 47m S 54 2.3 1:46.83 httpd 30981 apache 15 0 414m 105m 48m S 36 2.7 2:02.34 httpd 31341 apache 15 0 413m 98m 42m S 7 2.5 1:16.73 httpd 29235 mysql 15 0 1435m 845m 4580 S 1 21.4 5:43.70 mysqld 31456 apache 15 0 399m 83m 40m S 0 2.1 0:36.05 httpd 31751 anebi 15 0 92940 6812 1696 S 0 0.2 0:00.36 python 31859 anebi 15 0 12716 1080 792 R 0 0.0 0:00.21 top 1 root 18 0 10312 580 544 S 0 0.0 0:04.58 init 2 root RT 0 0 0 0 S 0 0.0 0:00.48 migration/0 3 root 34 19 0 0 0 S 0 0.0 0:01.84 ksoftirqd/0 4 root RT 0 0 0 0 S 0 0.0 0:00.00 watchdog/0 5 root RT 0 0 0 0 S 0 0.0 0:00.05 migration/1 6 root 34 19 0 0 0 S 0 0.0 0:00.05 ksoftirqd/1 7 root RT 0 0 0 0 S 0 0.0 0:00.00 watchdog/1 8 root 10 -5 0 0 0 S 0 0.0 0:00.01 events/0 9 root 10 -5 0 0 0 S 0 0.0 0:00.19 events/1 10 root 10 -5 0 0 0 S 0 0.0 0:00.00 khelper 47 root 11 -5 0 0 0 S 0 0.0 0:00.00 kthread 52 root 10 -5 0 0 0 S 0 0.0 0:00.15 kblockd/0 53 root 10 -5 0 0 0 S 0 0.0 0:00.45 kblockd/1 54 root 15 -5 0 0 0 S 0 0.0 0:00.00 kacpid |
top memory order
Примерен код | top - 20:42:33 up 3 days, 8:55, 3 users, load average: 2.32, 2.02, 2.17 Tasks: 132 total, 2 running, 130 sleeping, 0 stopped, 0 zombie Cpu(s): 76.3%us, 18.1%sy, 0.0%ni, 4.8%id, 0.7%wa, 0.2%hi, 0.0%si, 0.0%st Mem: 4051316k total, 3623656k used, 427660k free, 94456k buffers Swap: 6291448k total, 125436k used, 6166012k free, 1073264k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 29235 mysql 15 0 1435m 854m 4580 S 6 21.6 6:20.32 mysqld 31812 root 19 0 633m 117m 15m S 0 3.0 0:07.19 java 31885 apache 15 0 423m 108m 40m S 0 2.7 0:21.03 httpd 31899 apache 15 0 402m 86m 40m S 0 2.2 0:18.86 httpd 31888 apache 15 0 397m 80m 41m S 0 2.0 0:27.83 httpd 31890 apache 15 0 396m 80m 40m S 0 2.0 0:22.36 httpd 32040 apache 15 0 395m 79m 40m S 0 2.0 0:18.91 httpd 31896 apache 15 0 396m 79m 40m S 0 2.0 0:14.92 httpd 32041 apache 15 0 396m 79m 40m S 0 2.0 0:18.93 httpd 32039 apache 15 0 395m 79m 40m S 0 2.0 0:10.70 httpd 32031 apache 15 0 393m 78m 41m S 0 2.0 0:12.85 httpd 32035 apache 15 0 393m 77m 39m S 0 2.0 0:10.70 httpd 31900 apache 15 0 393m 76m 40m S 0 1.9 0:17.99 httpd 32045 apache 15 0 392m 76m 40m S 7 1.9 0:17.18 httpd 32044 apache 15 0 392m 76m 40m S 0 1.9 0:19.12 httpd 31894 apache 18 0 391m 76m 40m S 0 1.9 0:29.99 httpd 32032 apache 19 0 392m 76m 39m S 18 1.9 0:23.35 httpd 32046 apache 15 0 390m 75m 41m S 0 1.9 0:13.53 httpd 31895 apache 15 0 391m 75m 40m S 0 1.9 0:23.40 httpd 31902 apache 15 0 391m 75m 40m S 0 1.9 0:28.83 httpd 31892 apache 21 0 392m 75m 39m S 37 1.9 0:25.35 httpd 32037 apache 16 0 390m 74m 40m S 50 1.9 0:20.91 httpd 32043 apache 15 0 390m 74m 40m S 0 1.9 0:08.57 httpd 31897 apache 15 0 388m 72m 40m S 0 1.8 0:27.93 httpd 31884 apache 15 0 387m 71m 41m S 0 1.8 0:10.93 httpd 31908 apache 15 0 386m 71m 41m S 0 1.8 0:30.18 httpd 31901 apache 15 0 386m 70m 41m S 0 1.8 0:22.81 httpd 31891 apache 15 0 386m 70m 41m S 0 1.8 0:24.55 httpd 31907 apache 15 0 385m 70m 40m S 0 1.8 0:15.27 httpd 31906 apache 15 0 385m 69m 40m S 0 1.8 0:30.79 httpd 32030 apache 15 0 388m 69m 39m S 0 1.8 0:35.22 httpd 31898 apache 15 0 384m 69m 40m S 0 1.8 0:23.15 httpd 31903 apache 15 0 385m 69m 40m S 0 1.7 0:28.69 httpd 31887 apache 15 0 385m 68m 41m S 0 1.7 0:33.89 httpd 31904 apache 15 0 385m 68m 40m S 0 1.7 0:26.29 httpd
|
Също забелязах, че по принцип ботовете са една от причините натоварването да скача изведнъж. Как мога да разреша и този проблем?
Друго което искам да питам е за Solr, който ползва Java. Като тръгне да индексира ползва почти винаги 90-100% CPU, как мога да разреша и този проблем? Дал съм му Xmx200M
apachetop ми показва обикновено че процесорното време за request е средна 30-50 в най-натоварен момент CPU load макс 30-40%
П.П.
Сега се сетих, че мога да спра KeepAlive и направих следната конфигурация, която помогна малко да намаля натоварването:
<IfModule prefork.c> StartServers 25 MinSpareServers 10 MaxSpareServers 70 ServerLimit 150 MaxClients 150 MaxRequestsPerChild 6000 </IfModule>
Но мисля, че още може да се оптимизира.
Идеи?
Титла: Помощ за оптимизация на сървър
Публикувано от: peterangelov в May 23, 2008, 11:24
може да прозвучи леко лаишко - но защо не си поиграеш с nice приоритета на процесите? - не знам доколко е удачно в твоя случай, но винаги може да се пробва
Титла: Помощ за оптимизация на сървър
Публикувано от: badata в May 27, 2008, 19:40
Спри си апачето и така виж колко се товари процесора ,ако не се товари .... знаеш от каде ти идва проблема.
Титла: Помощ за оптимизация на сървър
Публикувано от: Ali Nebi в May 27, 2008, 23:55
Здравейте,
благодаря на всички за отговорите и идеите, които споделихте за да ми помогнете да разреша проблема. Поиграх си още малко с апачето, както направих малко промени в mysql, конфигурацията. Това помогна да намаля натоварването. В момента се държи добре и няма проблеми. Един от основните проблеми беше паметта, а другият значителен проблем беше бота на гугъл, който използваше много много процесорно време. Това товареше системата и ядеше ресурсите.
Ако имам някои други въпроси ще ги споделя с вас и ако мога да помогна с нещо, също бих се радвал.
Благодаря отново!
Поздрави, Али Неби!
Титла: Помощ за оптимизация на сървър
Публикувано от: Uvigii в May 29, 2008, 13:33
Цитат (ferrari_m @ Май 22 2008,22:44) | Това, което също прави проблем, е че mysql от време на време използва доста процесор, което заедно с apache кара системата да се товари повече. |
Здравей, пробва ли ?
Примерен код | CHECK TABLE `табличка` OPTIMIZE TABLE `табличка` |
Титла: Помощ за оптимизация на сървър
Публикувано от: Ali Nebi в May 29, 2008, 13:52
Здравей,
да.
Увеличих малко query_cach_size параметъра, защото триеше доста заявки от кеша, за да освободи памет за другите.
|