çªç¶ãã¿ã¹ã¯ã¯ãç¹å®ã®ãµã€ããå¿
èŠãªé床ã§åäœããªãçç±ãææ¡ããããšã§ããã 圌ã®CakePHPã®äžå¿ã§ãApacheããã³MySQLãšé£æºããŠããŸãã ãã®èšäºã§ã¯ãããã«ããã¯ãèŠã€ããŠãã§ããéãæŽçããããã»ã¹ã«ã€ããŠèª¬æããŸãã
ç§ã¯ãµã€ãã®ååãèŒãããŸãã-ããã°ã©ããŒèªèº«ãèŠã€ãããšæããŸãã ããã¯ãå®æçã«7äžãã15äžäººã®èšªåè
ããããœãŒã·ã£ã«ãããã¯ãŒã¯ã®ã¢ããªã±ãŒã·ã§ã³ã§ãããšããèšããŸããã å®æçã«åºåã¡ãŒã«ãè¡ãããæ°æéã§çŽ20äžãã30äžäººã®èšªåè
ãéãŸããšããäºå®ã«ãã£ãŠããã¹ãŠãè€éã«ãªã£ãŠããŸãã
ã ãããã«ããã®äžã§ã4æ¥éã®å
šäœã®éäºã®èª¬æã
ãã®èšäºã¯ã2ã€ã®ã°ã«ãŒãã®äººã
ã察象ãšããŠããŸãã 1ã€ç®ã¯ããã¡ããããã®ãããªäžåèªãæããªããã°ãªããªã管çè
ã§ãã æã
ãæ»ã«ãããŠãããµãŒããŒãã»ãšãã©è³ã§åŒã£åŒµããŸãã èŠèŽè
ã®2çªç®ã®éšåã¯ããã¹ãŠã®è³æã確å®ã«èªãããšãæãã§ããŸãããããã°ã©ãã§ãã åã ã¡ãç§ã¯èšããŸãããããžã§ã¯ããæ£ããèšèšããŠããã°ããã®ãããªäžåèªã¯ãªãã§ããããå€ãã®äºä»¶ã¯åé¿ã§ããã§ãããã ç¹ã«ãããªããããªãã®ãããžã§ã¯ããæžããŠããèŽè¡ãç¥ã£ãŠããŸãã
ç§ã¯èªç±ã«ãããããŒãµã€ãã«EX10ãµãŒããŒãèšçœ®ããŠããŸããã ç¥ããªã人ã®ããã«ãããã¯64 GBã®RAMãš6ã³ã¢ããã»ããµã§ãã ãããã·ã¹ãã ã®ã³ã¢ãšåŒã³ãŸãã ããã«2ã€ã®ãµãŒããŒãããã1ã€ã¯éçãµãŒããŒããã1ã€ã¯ããã¯ãšã³ãããŒã¹ã§ãã å°ããªã¢ããªã±ãŒã·ã§ã³ãInnoDB 500MBããŒã¿ããŒã¹ã
åŸã§å€æãã70-100ã®ãªã³ã©ã€ã³ã»ãã·ã§ã³ã§ã®äžå®ã®è² è·ã§ã¯ãç¶æ³ã¯æ¬¡ã®ãšããã§ããåã³ã¢ã®CPUè² è·ã100ïŒ
ã ãã¡ãããMySQLãšApacheã¯ã·ã¹ãã ãªãœãŒã¹ãããã£ãŠäºã£ãŠããŸãã
Nginx
æåã®è©Šã¿ã¯ãApacheåºåããã£ãã·ã¥ããŠéçåºåãåé€ããããšã«ããããµãŒããŒã®è² è·ãæžããããšã§ããã
éåžžã«ç°¡åãªæ§æã§ã€ã³ã¹ããŒã«ãããŸããïŒåœŒã¯ãã¹ãŠã®ãã¹ã¯ããããã¡ã€ã«ãè©ŠããŠç¹å®ã®ãã©ã«ããŒããéžæããå¿
èŠããããŸããããã¡ã€ã«ãååšããªãå Žåã¯ããããã·ãµãŒããŒããéžæãããã®ãã©ã«ããŒã«å
¥ããŠã¯ã©ã€ã¢ã³ãã«æž¡ããŸãã
http {
proxy_cache_path / var / tmp / nginx_cache / levels = 1ïŒ2 keys_zone = okïŒ100m inactive = 1d max_size = 1024m;
ãµãŒããŒ{
locationã* \ãïŒjs | jpg | jpg | png | jpeg | gif | zip | tgz | gz | rar | doc | xls | exe | pdf | ppt | txt | wav | bmp | rtfïŒ$ {
æå¹æéã¯1幎ã§ãã
open_file_cache_errors off;
error_page 404 = @fetch;
root / var / tmp / _fetch_ok;
}
å Žæ@fetch {
proxy_store_accessãŠãŒã¶ãŒïŒrwã°ã«ãŒãïŒrw allïŒr;
proxy_store on;
proxy_pass http://127.0.0.1:80;
proxy_temp_path / var / tmp / _fetch_ok_temp;
root / var / tmp / _fetch_ok;
}
å Žæ/ {
proxy_cache ok;
proxy_pass http://127.0.0.1;
proxy_cache_validä»»æã®10m;
proxy_buffer_size 8k;
}
}
}
æ§æã¯å®å
šã«ã¯äžããããŸãããããã®äŸã«å¿
èŠãªãããã¯ã®ã¿ãäžããããŸãã
æ®å¿µãªãããããã¯çµæã«ã€ãªãããŸããã§ããã
3ã€ã®ãã©ã¹ã®ã¿ããããŸããã
- Apacheã¯ç»åã®è¡šç€ºãåæ¢ããŸãããã€ãŸããè² è·ãå°ãå°ãªããªããŸããã
- Apacheã¯å€çãšã®çŽæ¥ã®éä¿¡ãåæ¢ãããããããŒãã¢ã©ã€ãããªãã«ããŠåã®æ°ãæžããããšãã§ããŸããã
- æåã®ããã«ããã¯ãèŠã€ãããŸããããµã€ããžã®ãã¹ãŠã®ãªã¯ãšã¹ãã¯ã.htaccessããªã¯ãšã¹ãããªãã€ã¬ã¯ãããPHPã¹ã¯ãªããã«ãã£ãŠå¶åŸ¡ãããŸãã å«ããŠãããªãã¯ä¿¡ããããªãããã¹ãŠã®éçãããã«ã¯CSSã
MySQL
çŸæç¹ã§ã¯ãSQLã¯ãšãªãšæé©åã®çµéšãããŸããªããããããã¯æãå°é£ã§ãã
MySQLã®ããã¥ã¡ã³ããèªãããšããå§ããŸããã
InnoDBãæå
ã«ããã®ã§ãéå§äœçœ®ã®æšæºé
ä¿¡my-innodb-heavy-4G.cnfããæ§æãã¡ã€ã«ãååŸããŸãã
以äžã§ã¯ãè² è·ã®é«ããããžã§ã¯ãã«æ³šæããå¿
èŠãããæ§æãã©ã¡ãŒã¿ãŒã«ã€ããŠèª¬æããŸãã
back_log = 5000
max_connections = 1600
æåã®ãã©ã¡ãŒã¿ãŒã¯ããµãŒããŒãæ°ããèŠæ±ãžã®å¿çãåæ¢ãããŸã§ãã¥ãŒã«å
¥ããããšãã§ããæ¥ç¶ã®æ°ã«è²¬ä»»ããããŸãã 2çªç®ã¯ããµãŒããŒãåãå
¥ããããšãã§ããæ¥ç¶ã®æ°ã§ãã
ç§ã«ãšã£ãŠã¯ããããã®å€ã¯éåžžã«å€§ãããå¹³åã§1300ãŸã§ã®ç«¶åã»ãã·ã§ã³ããããŸãããåæ¥ç¶ã«ã¯äžå®éã®RAMãå¿
èŠãªå Žåããããããå¿
èŠä»¥äžã«ããããã䟡å€ã¯ãããŸããã ããã«ã€ããŠã¯åŸã§è©³ãã説æããŸãã
max_connect_errors = 50
ããã§ã¯ç°¡åã§ã-åæãåä¿¡ããåã«ã¯ã©ã€ã¢ã³ããè¡ãããšãã§ãããšã©ãŒã®æ°ã ãããžã§ã¯ãã¯éçºäžã§ããããªã¯ãšã¹ããééã£ãŠããå¯èœæ§ãé«ããããå¢ããå¿
èŠããããŸããã
table_cache = 2048
ããŒãã«ãéãã«ã¯ããã€ãã®ãªãœãŒã¹ãå¿
èŠã§ããããããã®ãã©ã¡ãŒã¿ãŒã¯ãæåŸã®æ¥ç¶åŸãã°ããããŠæ¬¡ã®æ¥ç¶ãåŸ
æ©ããŠããéããŠããããŒãã«ã®æ°ã決å®ããŸãã
å€æ°ã§å€æŽããå¿
èŠããããã©ããã調ã¹ã
SHOW GLOBAL STATUS LIKE 'Opened_tables';
ã§ããã ãå°ããããªãã§ãã ããã
ããã«ããæžãããŠããŸãïŒ
http :
//www.mysql.ru/docs/man/Table_cache.htmlmax_allowed_paââcket = 16M
æ倧ãã±ãããµã€ãºã 倧ããªBLOBã䜿çšããªãå Žåãå€æŽããæå³ã¯ãããŸããã
binlog_cache_size = 1M
ãã©ã³ã¶ã¯ã·ã§ã³ã®ãã€ããªãã°ãã£ãã·ã¥ã®ãµã€ãºã å
¬åŒææžã§ã¯ã倧èŠæš¡ãªååŒãããå Žåã¯å¢ããããšãæšå¥šããŠããŸãã
dev.mysql.com/doc/refman/5.5/en/replication-options-binary-log.html#sysvar_binlog_cache_sizemax_heap_table_size = 64M
tmp_table_size = 64M
ç§ã®ç¥ãéããå°ããæ¹ãèæ
®ãããŸãã ãã®ãã©ã¡ãŒã¿ãŒã¯ãã¡ã¢ãªãŒã«åãŸãäžæããŒãã«ã®æ倧ãµã€ãºã決å®ããŸãã ããŒãã«ãããã«éãããšããã£ã¹ã¯ã«é
眮ãããŸãã ãããã£ãŠããã£ã¹ã¯äžã«ã§ããéãå°ãªãããŒãã«ãäœæããå¿
èŠããããŸãã äžæããŒãã«ãšãã£ã¹ã¯äžã®ããŒãã«ã®çŸåšã®æ¯çã衚瀺ããã«ã¯ããªã¯ãšã¹ãããŠãã ãã
show status like '%tmp%tables';
www.mysqlperformanceblog.com/2007/01/19/tmp_table_size-and-max_heap_table_sizesort_buffer_size = 8M
ã ããã ãŸããªãããã«ãç§ã¯ç¿»èš³ããããšãçŽæããŸããã 次ã®å Žåã«ã®ã¿ãããã¥ã¡ã³ãã§ãã®ãã©ã¡ãŒã¿ãŒã確èªããããšãæšå¥šããŠããããšã®ã¿ãæ確ã«ããŸãã
'ïŒ
Sort_merge_passesïŒ
'ã®ãããªã¹ããŒã¿ã¹ã衚瀺ããŸãã ãŒã以äž
dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_sort_buffer_sizejoin_buffer_size = 2M
ç§ã®ç¥ãéããã€ã³ããã¯ã¹ã䜿çšããªãæäœçšã«èšèšããããããã¡ã®æ倧ãµã€ãºã ãŸã 觊ããŠããŸããã
dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_join_buffer_sizethread_cache_size = 4096
ã¯ãšãªãå®äºããåŸã«åå©çšããããã«æ®ã£ãŠããååŒã®æ倧æ°ã MySQLãæ°ããååŒãã§ããéãå°ãªãããå€ãååŒã䜿çšããããã«ååãªç¶æ
ãä¿ã€ããšã¯äŸ¿å©ã§ãã Threads_created / Connectionsãã©ã¡ãŒã¿ãŒã«é¢é£ããŠããã®ãã©ã¡ãŒã¿ãŒã®æå¹æ§ãç解ã§ããŸãã
dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_thread_cache_sizequery_cache_size = 256M
query_cache_limit = 8M
ãã®ç¿»èš³ã®èè
ã§ããç§ã®ååã§ãã
habrahabr.ru/post/41166ãããåªããŠãããšæããŸãã
ããã¯ããããæãéèŠãªãã©ã¡ãŒã¿ãŒãªã®ã§ãèªã¿çŽãããšããå§ãããŸãã
thread_stack = 192K
ãã®ãã©ã¡ãŒã¿ãŒã®ç®çã«ã€ããŠã¯èª¬æããŸããããåæ¥ç¶ã§ãéç«ã£ãŠãããããæ¶è²»ãããRAMã®éã«ã圱é¿ãããšããäºå®ã«ã®ã¿æ³šæãæããŸãã ãããã£ãŠãåã³æ倧æ¥ç¶æ°ãæããŸã
long_query_time = 2
log_long_formatlog-queries-not-using-indexesMySQLãµãŒããŒã«ã¯ãããŒã¿ããŒã¹ã®ããã©ãŒãã³ã¹ãè©äŸ¡ããããã®éåžžã«äŸ¿å©ãªããŒã«ããããŸãã ããã¯é·ãèŠæ±ãã°ãã¡ã€ã«ã§ãã ç§ã®çµéšã§ã¯ããããã¯ã»ãšãã©ã®å Žåãéå¹ççãªã¯ãšãªãŸãã¯éã€ã³ããã¯ã¹ã¯ãšãªã§ãã
ãã®ãã°ãã¡ã€ã«ã䜿çšããŠããã°ã©ãã«è¡ãããšããå§ãããŸãã
key_buffer_size = 1G
ãã®ãã©ã¡ãŒã¿ãŒã¯ãã€ã³ããã¯ã¹ãã¡ã¢ãªã«ãã£ãã·ã¥ãããã®å€ãæé©åããããã«ãKey_read_requestsãKey_readsãåç
§ããŸãã 2çªç®ã®ãã©ã¡ãŒã¿ãŒã¯ããããã¡ãŒã§ã¯ãªãããã£ã¹ã¯ããã®èªã¿åãåæ°ã«è²¬ä»»ãè² ããŸãã
mysqltips.blogspot.com/2007/03/key-buffer.htmlread_buffer_size = 1M
boombick.org/blog/posts/3-ãã®ããã¹ããèªãã åŸãç§ã¯èªåãæ£ãããã©ããããããªãã®ã§ãäœãè¿œå ããå±éºã¯ãããŸããã
read_rnd_buffer_size = 24M
ãã®ãã©ã¡ãŒã¿ãŒã¯ããœãŒãæäœã®é床ã«åœ±é¿ããŸãã æ®å¿µãªããããã®æå¹æ§ãè©äŸ¡ããæ¹æ³ãèŠã€ãããŸããã§ããã
dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_read_rnd_buffer_sizewww.mysqlperformanceblog.com/2007/07/24/what-exactly-is-read_rnd_buffer_sizemyisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_max_extra_sort_file_size = 10G
ãã©ã¡ãŒã¿ãŒã¯ãœãŒãã«åœ±é¿ããŸãããå€æŽããããšãæ¢ããŠããŸããã§ããã ããã«ããè€éãªã¯ãšãªã®ããã©ãŒãã³ã¹ãåäžãããšä»®å®ããŠãæåã®å€ãå¢ãããŸããã
sync_binlog = 0
ç§ãã¡ã®å Žåãããã¯ã·ã¹ãã æ©èœãä»ããŠãã€ããªãã°ããã£ã¹ã¯ã«åæããªãããšãæå³ããŸãã ãã©ã¡ãŒã¿ãŒããŒããã倧ããå ŽåããµãŒããŒã¯nèŠæ±ããšã«ããŒã¿ãåæããŸãã
dev.mysql.com/doc/refman/5.5/en/replication-options-binary-log.html#sysvar_sync_binloginnodb_buffer_pool_size = 4G
ãã®èšå®ãå¢ãããšããã£ã¹ã¯æäœãæžå°ããŸãã æ®å¿µãªãããç§ã¯ãããããè¯ã枬å®ããæ¹æ³ãèŠã€ããŸããã§ããã ããŒã¹ãå°ããã®ã§ãããŸã倧ããããªãããšã«ããŸããã 倧èŠæš¡ãªããŒã¿ããŒã¹ã®å Žåãã¢ããã€ã¹ã®ã©ããã§ãã®ãã©ã¡ãŒã¿ãŒãRAMã®70ïŒ
ã«å¢ãããŸãã
dev.mysql.com/doc/refman/5.5/en/innodb-parameters.html#sysvar_innodb_buffer_pool_sizeinnodb_log_buffer_size = 32M
説æã«ããã°ãéããã©ã³ã¶ã¯ã·ã§ã³äžã®ãã£ã¹ã¯æäœãåæžããŸãã
dev.mysql.com/doc/refman/5.5/en/innodb-parameters.html#sysvar_innodb_log_buffer_sizeinnodb_log_file_size = 1024M
ããã¥ã¡ã³ããä¿¡ããŠããå Žåã¯ããã°ãã¡ã€ã«ãå¢ãããšIOãã£ã¹ã¯æäœã®è² è·ã¯è»œæžãããŸãããé害ãçºçããå Žåã®åŸ©æ§æéã¯é·ããªããŸãã
dev.mysql.com/doc/refman/5.5/en/innodb-parameters.html#sysvar_innodb_log_file_sizeinnodb_flush_log_at_trx_commit = 0
0ã«èšå®ãããšããããã¡ã¯æ¯ç§1
ç§ã« 1åãã©ãã·ã¥ãããåæ¿å
¥ã®åŸã§ã¯ãããŸããã
dev.mysql.com/doc/refman/5.1/en/innodb-parameters.html#sysvar_innodb_flush_log_at_trx_commitinnodb_thread_concurrency = 14
圌ãã¯ãã³ã¢ã®æ°ããå°ãå€ã眮ãããšãæšå¥šããŠããŸãã
innodb_sync_spin_loops = 10
ç§ãç解ããŠããããã«ãããã¯ãããããŒã¿ãžã®ã¢ã¯ã»ã¹è©Šè¡åæ°ã«åœ±é¿ããŸãã ãã®å€ãå¢ãããšãããã»ããµæéã倱ãããããŒã¿ããŒã¹ãžã®æžã蟌ã¿ã®ä¿¡é Œæ§ãäœäžããŸãã
www.mysqlperformanceblog.com/2006/09/07/internals-of-innodb-mutexesdev.mysql.com/doc/refman/5.0/en/innodb-parameters.html#sysvar_innodb_sync_spin_loopsDBããã³RAM
ããŒã¿ããŒã¹ã§äœãå€æŽããå¿
èŠããããã«ã€ããŠã®åºæ¬çãªç解ãäžããçŽ æŽãããperlã¹ã¯ãªããããããŸãã
mysqltuner.pl/mysqltuner.plå€ãã®å Žåããã®ã¹ã¯ãªããã¯mysqlãµãŒããŒã®æ倧ã¡ã¢ãªæ¶è²»ãèªããŸãã
ãœãŒã¹ãèŠããšãããã¯ãã®ããã°ã©ã ãã¡ã¢ãªäœ¿çšéãã©ã®ããã«èæ
®ãããã§ãïŒ
per_thread_buffers = read_buffer_size + read_rnd_buffer_size + sort_buffer_size + thread_stack + join_buffer_size;
total_per_thread_buffers = per_thread_buffers * max_connections;
server_buffers = key_buffer_size + max_tmp_table_size;
server_buffers + = innodb_buffer_pool_size;
server_buffers + = innodb_additional_mem_pool_size;
server_buffers + = innodb_log_buffer_size;
server_buffers + = query_cache_size;
total_possible_used_memory = server_buffers + total_per_thread_buffers;
å€ãæ£ããæå®ããªãã£ãå Žæãç解ããŠãããšåœ¹ã«ç«ã¡ãŸããã
ã¡ãªã¿ã«ãããã«ãã©ã¡ãŒã¿ãŒãéå°è©äŸ¡ããŸããã¹ã¯ãªããã倧éã®RAMããŒã¹ãæ¶è²»ãããšèªã£ãå Žåãããã¯äŸ¡å€ããããŸããã å€ãã®äººãããã¯åãªãçè«çãªææšã§ãããšèšã£ãŠããã®ã§ãããŒã¿ããŒã¹ã¯ããèªäœã«ããã»ã©å€ãã®ã¡ã¢ãªã䜿çšããããšã¯ããªããããããŸããã
ããŒã¿ããŒã¹æ§é ã®æé©åã
å¯èœãªéããã¹ãŠã®èšå®ãè¡ã£ãŠãããŸã è¯ãçµæãåŸãããªãã£ãå Žåã¯ãã¹ããŒãã°ãã¡ã€ã«ã䜿çšããŸãã
mysqlã«ã¯ãæšæºã§mysqldumpslowãä»å±ããŠããŸãã
å®è¡ããããšã«ãã
mysqldumpslow -sc <ã¹ããŒãã°ãã¡ã€ã«ãžã®ãã¹>ãšã³ããªã®æ°ã§ãœãŒããããŸãããããŒã¿ããŒã¹ã¯ãšãªã®ãªã¹ããé·ãããããã€ã³ããã¯ã¹ã䜿çšããŠããŸããã§ããã éåžžãæ£ããã€ã³ããã¯ã¹ãè¿œå ãããšãäž¡æ¹ã®åé¡ãä¿®æ£ãããŸãã
ã»ãšãã©ã®å Žåããã®ããã°ã©ã ã®åºåïŒã«ãŠã³ãå€æ°ïŒã«å€æ°ã®é·ãã¯ãšãªã衚瀺ãããŠããå Žåããã®ã¯ãšãªã®äžéšãã³ããŒãããã°ãã¡ã€ã«ã®ããã¹ãã§ãã®ãããªã¯ãšãªã®äŸãæ¢ããŸãã
次ã«ãããŒã¿ããŒã¹ã¯ã©ã€ã¢ã³ãã«ç§»åããŠãã®ã¯ãšãªãå®è¡ããæåã«Explainãšããåèªãè¿œå ããŸãã
ãŸãããã¡ãã§è©³çŽ°ãèªãããšãã§ããŸãã
habrahabr.ru/post/31072ããã«ãããã¯ãšãªãã€ã³ããã¯ã¹ã䜿çšããŠãããã©ããã確èªã§ããŸãã
ããŒãã«ã«ååãªã€ã³ããã¯ã¹ããªãå Žåã¯ãç¡çã«è¿œå ããããšã¯ã§ããŸããããã€ã³ããã¯ã¹ãå®å
šã«è¿œå ã§ããŸãã whereãšorderã®åŸã«äœ¿çšãããåã«ã¯ã€ã³ããã¯ã¹ãå¿
èŠã§ãã åstobletsã®äžæã®ã€ã³ããã¯ã¹ããå§ããŸãã ããããªããšãã€ã³ããã¯ã¹ãæ©èœããªãå ŽåããããŸãã
ããã§ã¯ããããã®ã€ã³ããã¯ã¹ãã©ã®ããã«æ©èœãããããã詳ããç¥ãããšãã§ããŸãã
dev.mysql.com/doc/refman/5.0/en/mysql-indexes.htmlççŽã«èšã£ãŠã5ã€ã®ããŒãªã¯ãšã¹ããæé©åããåŸããµãŒããŒã¯50ã§ã¯ãªã500ã700ã®æ¥ç¶ãåŠçã§ããPHPããŒãžã®çºè¡æéã¯8ç§ã§ã¯ãªã1ç§ã«ççž®ãããŸããã æå€§è² è·ã§ã¯ãããŒãžé
ä¿¡æéã¯50ç§ã§ã¯ãªã5ç§ã§ããã ïŒããã¯ãApache Benchmark cã䜿çšããçŽ1000ã¹ã¬ããã®ããã©ãŒãã³ã¹æž¬å®ãæããŸãïŒ
nginxã«ã€ããŠããå°ãã
æé©ååŸãè² è·ã倧ãããšãapacheã§ã¯ãªãnginxèªäœãäžå®é以äžãªã¯ãšã¹ããã¹ããŒããããšã«æ°ä»ããŸããã ãã ããã¡ã¢ãªãšCPUã¯ããŒããããŸããã
圌ã¯ç解ãå§ããŸããã ãã°ã§ãnginxãµãŒããŒãå¿
èŠä»¥äžã®ãã¡ã€ã«ãéãããšããŠããããšãããããŸããã
ç§ã察åŠããªããã°ãªããªãã£ãSuseã§ã¯ããã¡ã€ã«ããã®å¶éãæ
åœããŠããŸã
/etc/security/limits.conf
ããã§æ¬¡ã®è¡ãè¿œå ããŸããã
nginxãœããnofile 300000
nginx hard nofile 300000
ãµãŒããŒã®åèµ·åã¯å¿
èŠãããŸããã§ããã
Apache2
ãŸã æ§æãããŸãå€æŽããŠããŸããã ç§ããã£ãããšã¯ãããŒãã¢ã©ã€ãããªãã«ããããšã ãã§ããã Apacheãç©ããã«çããåºããnginxããŸã äœéãã£ã³ãã«ã®ã¯ã©ã€ã¢ã³ãã«ããŒãžãæäŸããŠãããã®æç¹ã§ã次ã®ãªã¯ãšã¹ãã«åŸäºã§ããããšã
eAccelerator
ãã®ãªããã£ãã€ã¶ãŒã«ã¯ãå€æŽå¯èœãªå€æ°ã®ãã©ã¡ãŒã¿ãŒãããããšãå¿ããªãã§ãã ããã
å€æŽç¹ã¯æ¬¡ã®ãšããã§ãã
eaccelerator.shm_size = "2096"
䜿çšã§ããä»®æ³ã¡ã¢ãªã®ãµã€ãºïŒã¡ã¬ãã€ãåäœïŒ
eaccelerator.shm_only = "1"-RAMã®ã¿ã䜿çšãããã£ã¹ã¯ã䜿çšããªãã2 Satãã£ã¹ã¯ã®ãœãããŠã§ã¢RAIDã§ã®ioã®æŠãã§ãããããããšã決ããŸããã
èªãã®ã«åœ¹ç«ã€ä»ã®ãã®ã¯æ¬¡ã®ãšããã§ãã
habrahabr.ru/post/41166habrahabr.ru/post/108418dev.mysql.com/doc/refman/5.5/en/server-system-variables.htmlãã®èšäºãèªãã§ãææ³çããã³æäœçãªèª€ãã®å±±ããã¹ãŠä¿®æ£ããŠãããç§ã®å人ã«æè¬ããŸãã
ããšããã®ä»£ããã«
å人ãã¡ãç§ã¯ãã®èšäºã§äžããããçµè«ã«èª€ãã誀ããããããããããšãç解ããŠããŸãã
èšäºãããè¯ãããããã®ç¬¬äžäººè
ãžã®å€§ããªã³ã¡ã³ããšã³ã¡ã³ãã
UPDã ã³ã¡ã³ãã®èŠçŽ
ãã®ãããªå€§ããªé¢å¿ããå¯ãããã ãããããšãããããŸãã æåŸ
ããŠããªãã£ãã
è¯ããªã³ã¯ãç§ã¯èªãããšããå§ãããŸãïŒ
www.percona.com/files/presentations/percona-live/dc-2012/PLDC2012-optimizing-mysql-configuration.pdfããããšã
ã¢ã«ãã«ã¿ã PHPãã£ãã·ã³ã°ã·ã¹ãã ã«ã€ããŠïŒ
ã¯ãã確ãã«eAcceleratorãå¯äžã®ãªãã·ã§ã³ã§ã¯ãããŸããã
APCããããã¯ãã圌ãã¯æ¬åœã«ãããPHPã«åã蟌ãã€ããã§ãã
ååãªãã¹ããè¡ã£ãŠããªããããäœãè¯ãããå€æããã€ããã¯ãããŸããã
MySQLã«ä»£ãããã®ãååšããå€ããããŸãã
ãã¡ããããŒïŒ
ããªã¢ã
ããŒã³ã
å人çã«ããŒã³ã³ãéžã³ãŸããããä»ã®ãšããæºè¶³ããŠããŸãã
ãããæçµçãªæããçµæã§ã¯ãªããå
ã«é²ãå¿
èŠããããšããäºå®ã«é¢ããŠ-泚ææ·±ãèªãã 人ã¯ããããåãªããããã³ã°ã®ç©Žã§ããããšãããããŸãã