내 MySQL 버전 14.12 Distrib 5.0.45 서버는 8G RAM 및 8 x Intel(R) Xeon(R) CPU E5410 @ 2.33GHz를 갖춘 Multiflex Intel Blade에서 실행됩니다.
내가 직면하고 있는 문제는 다음과 같습니다.
지난 3~4일 동안 2G 스왑 공간이 꽉 차서 서버가 정지 상태가 되어 매번 서버를 다시 시작해야 했습니다.
출력
free -m
:total used free shared buffers cached Mem: 7971 933 7037 0 0 800 -/+ buffers/cache: 132 7838 Swap: 1983 785 1198
2G 더 많은 스왑 공간을 추가했지만 문제는 여전히 존재합니다.
/usr/local/mysql/bin/mysql -uroot -p -e "show variables like '%cache%';"
:+------------------------------+----------------------+ | Variable_name | Value | | binlog_cache_size | 32768 | | have_query_cache | YES | | key_cache_age_threshold | 300 | | key_cache_block_size | 1024 | | key_cache_division_limit | 100 | | max_binlog_cache_size | 18446744073709551615 | | ndb_cache_check_time | 0 | | query_cache_limit | 1048576 | | query_cache_min_res_unit | 4096 | | query_cache_size | 536870912 | | query_cache_type | ON | | query_cache_wlock_invalidate | OFF | | table_cache | 1024 | | thread_cache_size | 16 |
어떤 제안이 있으십니까?
답변1
이것은 훌륭한 기사입니다Linux 커널이 스왑 공간을 처리하는 방법에 대해 설명합니다. "스왑 가능성", 즉 커널이 대규모 프로그램을 스왑 공간으로 스왑할 가능성을 줄여 스왑 공간이 RAM보다 낫지 않도록 할 수 있습니다.
0-100 사이의 값을 /proc/sys/vm/swappiness에 반영하면 값에 따라 커널이 더 적게 또는 더 많이 스왑하게 됩니다. 기본값은 60입니다. 40~50 정도 추천드려요.
당신은 실제로 원할 수도 있습니다줄이다병목 현상이 설명하는 "중지" 상태일 수 있으므로 스왑 공간의 양입니다.