koliber2 0 Zgłoś post Napisano Grudzień 17, 2009 Witam! Prowadzę grę internetową przez przeglądarkę i posiadam serwer dedykowany tylko i wyłącznie pod tą grę. Serwer to: Kimsufi Q-1T Quad Core Q6600 4x 2.40+ GHz 4 GB Głównym winowajcą jest MySQL, który tworzy slow queries w losowym czasie i w różnych zapytaniach... Serwer w tym momencie staje i tworzy się ogromny lag... Problemy się zaczęły, gdy gra została przeniesiona na inny serwer. Wczesniej gra działała bez zarzutu na slabszej maszynie (3,0Ghz HT). Konfiguracja TOP top - 20:36:56 up 28 days, 5:47, 1 user, load average: 4.22, 7.99, 16.72 Tasks: 213 total, 2 running, 211 sleeping, 0 stopped, 0 zombie Cpu(s): 5.6%us, 1.6%sy, 0.0%ni, 23.9%id, 68.7%wa, 0.0%hi, 0.2%si, 0.0%st Mem: 4128152k total, 3014632k used, 1113520k free, 554180k buffers Swap: 4607992k total, 0k used, 4607992k free, 1978232k cached APACHE Timeout 300 KeepAlive Off MaxKeepAliveRequests 100 KeepAliveTimeout 3 MinSpareServers 5 MaxSpareServers 25 StartServers 5 MaxClients 256 MaxRequestsPerChild 200 PHP [code] extension="/no-debug-non-zts-20020429/eaccelerator.so" eaccelerator.shm_size="16" eaccelerator.cache_dir="/tmp/eaccelerator" eaccelerator.enable="1" eaccelerator.optimizer="1" eaccelerator.check_mtime="1" eaccelerator.debug="0" eaccelerator.filter="" eaccelerator.shm_max="0" eaccelerator.shm_ttl="0" eaccelerator.shm_prune_period="0" eaccelerator.shm_only="0" eaccelerator.compress="1" eaccelerator.compress_level="9" MYSQL [mysqld] max_connections=200 connect_timeout=5 log-slow-queries=/var/log/mysql/log-slow-queries.log #log-bin key_buffer_size = 500M max_allowed_packet = 1M sort_buffer_size=2M read_rnd_buffer_size=8M read_buffer_size=2M myisam_sort_buffer_size = 64M thread_cache_size = 8 thread_concurrency = 4 query_cache_limit=1M query_cache_size=32M query_cache_type=1 table_cache = 200 skip-innodb skip-networking Prosze o pomoc lub o jakieś sugestie. Gdyby znalazl sie ktos kto by problem rozwiazal- niewykluczona zaplata... Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość N3T5kY Zgłoś post Napisano Grudzień 17, 2009 do my cnf dodaj tmp_table = 128M (lub wiecej) zmniejsz timeout apache do 10 i zainteresuj sie jakims anty-slowloris Masz tez duzy iowait, czyli procesor bardzo dlugo czeka na I/O dysku sprawdz: smartctl -a /dev/sda Udostępnij ten post Link to postu Udostępnij na innych stronach
pawelk 0 Zgłoś post Napisano Grudzień 18, 2009 A ja bym polecał zainteresować się jakimś cache (apc, memcache), aby odciążyć bazę. Udostępnij ten post Link to postu Udostępnij na innych stronach
malu 460 Zgłoś post Napisano Grudzień 18, 2009 A ja bym polecał zainteresować się jakimś cache (apc, memcache), aby odciążyć bazę. A ja bym polecił Tobie kupić okulary. W pierwszym poście jest wyraźnie wycinek z php.ini, gdzie widać, że dodany jest eaccelerator. A co do tematu. Zobacz sobie w phpinfo, ile Ci eaccelerator w danej chwili pobiera : eaccelerator.shm_size I w sumie możesz się pokusić o zwiększenie wartości. Myślę, że przesadziłeś z key_buffer_size = 500M, polecam więc w łopatologiczny sposób odpalić np. tuning-primer i zasugerować się zmianami przez niego sugerowanymi ;D Udostępnij ten post Link to postu Udostępnij na innych stronach
pawelk 0 Zgłoś post Napisano Grudzień 21, 2009 A ja bym polecił Tobie kupić okulary. W pierwszym poście jest wyraźnie wycinek z php.ini, gdzie widać, że dodany jest eaccelerator. Ja mam kupić okulary? apc oraz memcache pozwalają na zapis DANYCH do cache (np wyników zapytań, tyle, że robisz to sam w kodzie). Natomiast eaccelerator nie pozwala na takie rzeczy. Udostępnij ten post Link to postu Udostępnij na innych stronach
^^KaMaZZ~.^ 154 Zgłoś post Napisano Grudzień 21, 2009 heh i jesteś tego pewien? Tutaj mały kodzik cachera do WP (eAccelerator) <?php /* Name: eAccelerator for WordPress Description: eAccelerator backend for the WP Object Cache. Version: 0.6 URI: [url="http://neosmart.net/dl.php?id=13"]http://neosmart.net/dl.php?id=13[/url] Author: Computer Guru Author URI: [url="http://neosmart.net/blog/"]http://neosmart.net/blog/[/url] * Install this file to /wp-content/object-cache.php * If on Windows, restart IIS after installing for best results Thanks to Ryan Boren for his original memcached code. */ // Gracefully revert to default cache if eAccelerator is not installed if ( !function_exists('eaccelerator_get') ) include_once(ABSPATH . WPINC . '/cache.php'); else { function wp_cache_add($key, $data, $flag = '', $expire = 0) { return wp_cache_set($key, $data, $flag, $expire); } function wp_cache_close() { return true; } function wp_cache_delete($id, $flag = '') { global $wp_object_cache; return $wp_object_cache->delete($id, $flag); } function wp_cache_flush() { global $wp_object_cache; return $wp_object_cache->flush(); } function wp_cache_get($id, $flag = '') { global $wp_object_cache; return $wp_object_cache->get($id, $flag); } function wp_cache_init() { global $wp_object_cache; $wp_object_cache = new WP_Object_Cache(); } function wp_cache_replace($key, $data, $flag = '', $expire = 0) { return wp_cache_set($key, $data, $flag, $expire); } function wp_cache_set($key, $data, $flag = '', $expire = 0) { global $wp_object_cache; return $wp_object_cache->set($key, $data, $flag, $expire); } class WP_Object_Cache { var $global_groups = array ('users', 'userlogins', 'usermeta'); var $cache = array(); function delete($id, $group = 'default') { $key = $this->key($id, $group); $result = eaccelerator_rm($key); if ( $result ) unset($this->cache[$key]); return $result; } function flush() { eaccelerator_clear(); return true; } function get($id, $group = 'default') { $key = $this->key($id, $group); if ( isset($this->cache[$key]) ) $value = $this->cache[$key]; else $value = eaccelerator_get($key); $value = maybe_unserialize($value); if ( NULL === $value ) $value = false; $this->cache[$key] = $value; return $value; } function set($id, $data, $group = 'default', $expire = 0) { $key = $this->key($id, $group); if ( is_resource($data) ) return false; $data = maybe_serialize($data); $result = eaccelerator_put($key, $data, $expire); if ( $result ) $this->cache[$key] = $data; return $result; } function key($key, $group) { global $blog_id; if ( empty($group) ) $group = 'default'; if (false !== array_search($group, $this->global_groups)) $prefix = ''; else $prefix = $blog_id . ':'; return md5(ABSPATH . "$prefix$group:$key"); } function stats() { // Note that this is the total eAccelerator stats, not just WP but also any other apps using eAccelerator var storage $eaccelerator_info = eaccelerator_info(); echo "<p>\n"; echo "<strong>Cached Variables:</strong> {$eaccelerator_info['cachedKeys']}<br/>\n"; echo "<strong>Cached Scripts: </strong> {$eaccelerator_info['cachedScripts']}<br/>\n"; echo "</p>\n"; if ( !empty($this->cache) ) { echo "<pre>\n\r"; print_r($this->cache); echo "</pre>\n\r"; } } function WP_Object_Cache() { // Empty Constructor } } } //End Else ?> Udostępnij ten post Link to postu Udostępnij na innych stronach
tumeks 0 Zgłoś post Napisano Grudzień 22, 2009 W mysql wartość tmp_table_size zmianiłem na "256M". W Apache timeout zmieniony na 10 smartctl -a /dev/sda nie działa... podczas wlaczania /etc/init.d/smartmontools start otrzymuje następujący komunikat Enabling S.M.A.R.T..../dev/sda...unable to fetch IEC (SMART) mode page [unsupported field in scsi command] (failed)... Udostępnij ten post Link to postu Udostępnij na innych stronach
pawelk 0 Zgłoś post Napisano Grudzień 23, 2009 heh i jesteś tego pewien? ok, sorry - mój błąd;) Udostępnij ten post Link to postu Udostępnij na innych stronach
tumeks 0 Zgłoś post Napisano Grudzień 30, 2009 Sprawa nadal nierozwiązana... serwer łapie zawiasy w pewnych momentach blokując dostęp do serwera... Przeinstalowałem system na OpenSUSE 11 i nadal to samo. Dyski sprawdziłem za pomocą narzędzia OVH i wszystko jest OK. Podczas zawiasu %wa sięga, aż do 100%. Udostępnij ten post Link to postu Udostępnij na innych stronach
ark. 0 Zgłoś post Napisano Grudzień 31, 2009 Zleć to komuś... Udostępnij ten post Link to postu Udostępnij na innych stronach
Gość N3T5kY Zgłoś post Napisano Grudzień 31, 2009 Jeśli jest IOwait 100, to musi być coś z dyskiem/procesorem, bo to nie jest normalne. Sprawdziłeś smarta, tak jak prosiłem ? Udostępnij ten post Link to postu Udostępnij na innych stronach
tumeks 0 Zgłoś post Napisano Grudzień 31, 2009 Już wstawiam... smartctl -a /dev/sda smartctl -a /dev/sda smartctl 5.39 2008-05-08 21:56 [i686-pc-linux-gnu] (local build) Copyright (C) 2002-8 by Bruce Allen, http://smartmontools.sourceforge.net === START OF INFORMATION SECTION === Device Model: WDC WD10EADS-00P8B0 Serial Number: WD-WMAVU0298398 Firmware Version: 01.00A01 User Capacity: 1,000,204,886,016 bytes Device is: Not in smartctl database [for details use: -P showall] ATA Version is: 8 ATA Standard is: Exact ATA specification draft version not indicated Local Time is: Thu Dec 31 15:29:00 2009 CET SMART support is: Available - device has SMART capability. SMART support is: Enabled === START OF READ SMART DATA SECTION === SMART overall-health self-assessment test result: PASSED General SMART Values: Offline data collection status: (0x84) Offline data collection activity was suspended by an interrupting command from host. Auto Offline Data Collection: Enabled. Self-test execution status: ( 0) The previous self-test routine completed without error or no self-test has ever been run. Total time to complete Offline data collection: (21780) seconds. Offline data collection capabilities: (0x7b) SMART execute Offline immediate. Auto Offline data collection on/off supp ort. Suspend Offline collection upon new command. Offline surface scan supported. Self-test supported. Conveyance Self-test supported. Selective Self-test supported. SMART capabilities: (0x0003) Saves SMART data before entering power-saving mode. Supports SMART auto save timer. Error logging capability: (0x01) Error logging supported. General Purpose Logging supported. Short self-test routine recommended polling time: ( 2) minutes. Extended self-test routine recommended polling time: ( 250) minutes. Conveyance self-test routine recommended polling time: ( 5) minutes. SCT capabilities: (0x303f) SCT Status supported. SCT Feature Control supported. SCT Data Table supported. SMART Attributes Data Structure revision number: 16 Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_ FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x002f 200 200 051 Pre-fail Always - 0 3 Spin_Up_Time 0x0027 177 177 021 Pre-fail Always - 6108 4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 21 5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0 7 Seek_Error_Rate 0x002e 100 253 000 Old_age Always - 0 9 Power_On_Hours 0x0032 098 098 000 Old_age Always - 1612 10 Spin_Retry_Count 0x0032 100 253 000 Old_age Always - 0 11 Calibration_Retry_Count 0x0032 100 253 000 Old_age Always - 0 12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 19 192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 17 193 Load_Cycle_Count 0x0032 187 187 000 Old_age Always - 40897 194 Temperature_Celsius 0x0022 124 101 000 Old_age Always - 26 196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0 197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 0 198 Offline_Uncorrectable 0x0030 200 200 000 Old_age Offline - 0 199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 0 200 Multi_Zone_Error_Rate 0x0008 200 200 000 Old_age Offline - 0 SMART Error Log Version: 1 No Errors Logged SMART Self-test log structure revision number 1 No self-tests have been logged. [To run self-tests, use: smartctl -t] SMART Selective self-test log data structure revision number 1 SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS 1 0 0 Not_testing 2 0 0 Not_testing 3 0 0 Not_testing 4 0 0 Not_testing 5 0 0 Not_testing Selective self-test flags (0x0): After scanning selected spans, do NOT read-scan remainder of disk. If Selective self-test is pending on power-up, resume after 0 minute delay. Udostępnij ten post Link to postu Udostępnij na innych stronach