Tôi đang chạy một ứng dụng facebook hiện có 300 - 600 người dùng đồng thời (và đang phát triển). Để sẵn sàng cho phần cứng phát triển, tôi đã thay đổi i7 / 12gb ram / 2x 80gb intel x25 ssd của tôi (debian 5.0 / mysql 5.0 / 64bit) thành bi-xeon / 24gb ram / 2x 120gb intel 320 ssd (ub Ubuntu 10.10 / mysql 5.1 / 64 bit).
bây giờ tôi đang đối mặt với vấn đề rằng hiệu suất kém hơn so với "hộp nhỏ hơn". Trên cả hai máy chủ, tôi đã sử dụng nginx / php fcgi để phục vụ nội dung.
Tôi chỉ sử dụng innodb, có Đọc / Viết khoảng 65% / 35%. Khoảng 800 - 1000 qps nhưng tất cả các Truy vấn đều đơn giản và không bao giờ tham gia nhiều hơn 1 bảng bổ sung. Tất cả các chỉ mục được đặt và không có truy vấn riêng lẻ nào được ghi vào nhật ký chậm (> 2 giây). Hiện tại tôi có khoảng 400mb dữ liệu (khoảng 1gb với các chỉ mục) hy vọng nó sẽ tăng gấp đôi mỗi tháng.
Tôi ngưỡng mộ tất cả những người có thể cho tôi một gợi ý những gì cần thay đổi để làm cho nó chạy mượt hơn.
Cấu hình cũ trên hộp i7 là như thế này (hỗn hợp myisam / innodb), hoạt động khá tốt lên đến hơn 800 người dùng.
my.cnf cũ
key_buffer = 3000M
max_allowed_packet = 128M
thread_stack = 192K
thread_cache_size = 8
max_connections = 400
table_cache = 8000
thread_concurrency = 16
query_cache_limit = 8M
query_cache_size = 128M
wait_timeout = 10
interactive_timeout = 10
connect_timeout = 600
low_priority_updates = 1
join_buffer_size = 8M
read_buffer_size = 2M
sort_buffer_size = 3M
myisam_sort_buffer_size = 32M
read_rnd_buffer_size = 4M
innodb_buffer_pool_size = 3G
innodb_log_buffer_size = 8M
Cấu hình mới trên hộp bi-xeon là như thế này (innodb thuần túy), gây ra tải cao với hơn 300 người dùng. Khoảng 30 quy trình mysql nằm ở đầu danh sách quy trình.
Đĩa I / O:
avg-cpu: %user %nice %system %iowait %steal %idle
36.28 0.00 1.60 0.17 0.00 61.95
my.cnf
key_buffer = 64M
max_allowed_packet = 1M
thread_stack = 192K
thread_cache_size = 128
max_connections = 500
table_cache = 512
#thread_concurrency = 10
sort_buffer_size = 256K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
tmp_table_size = 32M
max_heap_table_size = 32M
query_cache_limit = 1M
query_cache_size = 128M
query_cache_type = 1
innodb_file_per_table = 1
innodb_data_file_path = ibdata1:1000M:autoextend
innodb_buffer_pool_size = 16384M
innodb_additional_mem_pool_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_support_xa = 0
innodb_lock_wait_timeout = 50
innodb_flush_method=O_DIRECT
innodb_log_files_in_group = 2
innodb_log_file_size = 128M
innodb_log_buffer_size = 8M
innodb_thread_concurrency = 12
skip-name-resolve
bị vô hiệu hóa và nó có thể được kích hoạt?