আমি একটি ফেসবুক অ্যাপ চালাচ্ছি যা বর্তমানে 300 - 600 সমবর্তী ব্যবহারকারী (এবং বর্ধমান) রয়েছে। হার্ডওয়্যার বাড়ানোর জন্য প্রস্তুত হওয়ার জন্য আমি আমার আই 7/12 জিবি র্যাম / 2 এক্স 80 জিবি ইন্টেল এক্স 25 এসএসডি এর (ডেবিয়ান 5.0 / মাইএসকিএল 5.0 / 64 বিট) একটি দ্বি-xeon / 24 জিবি র্যাম / 2 এক্স 120 জিবি ইন্টেল 320 এসএসডি (উবুন্টু 10.10 / মাইএসকিএল 5.1 / 64bit)।
এখন আমি এই সমস্যার মুখোমুখি হয়েছি যে "ছোট বাক্স" এর চেয়ে পারফরম্যান্স খারাপ। উভয় সার্ভারে আমি কন্টেন্টটি পরিবেশন করতে nginx / php fcgi ব্যবহার করে আসছি gi
আমি কেবল ইনডোডাব ব্যবহার করছি, প্রায় 65% / 35% রিড / রাইট রয়েছে। 800 - 1000 কিউপিএসের চারপাশে তবে সমস্ত ক্যোয়ারীগুলি সহজ এবং 1 টির বেশি টেবিলের সাথে কখনই যোগ দেয় না। সমস্ত সূচক সেট করা আছে এবং কোনও স্বতন্ত্র ক্যোয়ারী ধীর লগ (> 2 এস) এ লগ হয় না। এই মুহুর্তে আমার কাছে প্রায় 400 মিমি ডেটা রয়েছে (সূচী সহ 1 জিবি প্রায়) এটি প্রতি মাসে দ্বিগুণ হওয়ার আশা করে।
আমি সবাইকে আদর করতাম যারা এটিকে মসৃণ করার জন্য আমাকে কী পরিবর্তন করতে হবে তার একটি ইঙ্গিত দিতে পারে।
আই 7 বাক্সে পুরানো কনফিগারেশনটি এটির মতো ছিল (মিশ্রিত মাইসাম / ইনোডাব), 800+ ব্যবহারকারী পর্যন্ত বেশ ভাল অভিনয় করেছিলেন।
পুরাতন my.cnf
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
দ্বি-xeon বাক্সে নতুন কনফিগারেশনটি এর মতো (খাঁটি ইনডোডাব), 300+ ব্যবহারকারীদের সাথে উচ্চ লোড সৃষ্টি করে। প্রক্রিয়া তালিকার শীর্ষে বসে প্রায় 30 টি মাইএসকিএল প্রক্রিয়া রয়েছে।
ডিস্ক 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
অক্ষম এবং এটি সক্ষম করা যায়?