মাইএসকিএল পুনরায় চালু না করে মান হ্রাস করা বেশ তুচ্ছ
ধরা যাক আপনি 30 সেকেন্ডের সময়সীমা কমিয়ে দিতে চান
প্রথমে এটি my.cnf এ যুক্ত করুন
[mysqld]
interactive_timeout=30
wait_timeout=30
তারপরে, আপনি এই জাতীয় কিছু করতে পারেন
mysql -uroot -ppassword -e"SET GLOBAL wait_timeout=30; SET GLOBAL interactive_timeout=30"
এর পরে সমস্ত ডিবি সংযোগ 30 সেকেন্ডের মধ্যে শেষ হবে
সতর্কতামূলক
স্পষ্টভাবে mysql_close ব্যবহার নিশ্চিত করুন। বেশিরভাগ বিকাশকারীদের মতো আমি আপাচে বিশ্বাস করি না। যদি তা না হয়, কখনও কখনও, এমন একটি দৌড়ের শর্ত রয়েছে যেখানে আপাচি একটি ডিবি সংযোগ বন্ধ করে দেয় তবে মাইএসকিএলডি এবং মাইএসকিএলডকে অবহিত করে না যে সংযোগটি সময় শেষ না হওয়া পর্যন্ত খোলা রাখে। আরও খারাপ, আপনি আরও বেশি বার TIME_WAIT দেখতে পাবেন। আপনার সময়সীমার মানগুলি বুদ্ধিমানের সাথে চয়ন করুন।
আপডেট 2012-11-12 10:10 ইডিটি
বিচারকার্য স্থগিত রাখার আদেশ
আমার পোস্ট পরামর্শগুলি প্রয়োগ করার পরে, /root/show_mysql_netstat.sh
নিম্নলিখিত লাইনের সাথে ডাকা স্ক্রিপ্ট তৈরি করুন :
netstat | grep mysql > /root/mysql_netstat.txt
cat /root/mysql_netstat.txt | awk '{print $5}' | sed 's/:/ /g' | awk '{print $2}' | sort -u > /root/mysql_netstat_iplist.txt
for IP in `cat /root/mysql_netstat_iplist.txt`
do
ESCOUNT=`cat /root/mysql_netstat.txt | grep ESTABLISHED | awk '{print $5}' | grep -c "${IP}"`
TWCOUNT=`cat /root/mysql_netstat.txt | grep TIME_WAIT | awk '{print $5}' | grep -c "${IP}"`
IPPAD=`echo "${IP}..................................." | cut -b -35`
(( ESCOUNT += 1000000 ))
(( TWCOUNT += 1000000 ))
ES=`echo ${ESCOUNT} | cut -b 3-`
TW=`echo ${TWCOUNT} | cut -b 3-`
echo ${IPPAD} : ESTABLISHED:${ES} TIME_WAIT:${TW}
done
echo ; echo
netstat -nat | awk '{print $6}' | sort | uniq -c | sort -n | sed 's/d)/d/'
আপনি যখন এটি চালান, আপনার এমন কিছু দেখতে পাওয়া উচিত:
[root@*** ~]# /root/ShowConnProfiles.sh
10.48.22.4......................... : ESTABLISHED:00002 TIME_WAIT:00008
10.48.22.8......................... : ESTABLISHED:00000 TIME_WAIT:00002
10.64.51.130....................... : ESTABLISHED:00001 TIME_WAIT:00000
10.64.51.133....................... : ESTABLISHED:00000 TIME_WAIT:00079
10.64.51.134....................... : ESTABLISHED:00002 TIME_WAIT:00001
10.64.51.17........................ : ESTABLISHED:00003 TIME_WAIT:01160
10.64.51.171....................... : ESTABLISHED:00002 TIME_WAIT:00000
10.64.51.174....................... : ESTABLISHED:00000 TIME_WAIT:00589
10.64.51.176....................... : ESTABLISHED:00001 TIME_WAIT:00570
1 established
1 Foreign
11 LISTEN
25 ESTABLISHED
1301 TIME_WAIT
আপনি যদি এখনও TIME_WAITs
কোনও প্রদত্ত ওয়েব সার্ভারের জন্য অনেকগুলি মেসকিউএল দেখতে পান তবে দুটি পদক্ষেপ গ্রহণের জন্য এখানে:
এসেসালেশন # 1
আপত্তিজনক ওয়েব সার্ভারে লগইন করুন এবং অ্যাপাচি নীচে হিসাবে পুনরায় চালু করুন:
service httpd stop
sleep 30
service httpd start
প্রয়োজনে সমস্ত ওয়েব সার্ভারে এটি করুন
service httpd stop (on all web servers)
service mysql stop
sleep 120
service mysql start
service httpd start (on all web servers)
এসেসালেশন # 2
নিম্নলিখিতটি দিয়ে আপনি ওএসকে মাইএসকিএল বা অন্য কোনও অ্যাপ্লিকেশনটির জন্য TIME_WAIT গুলি মারতে বাধ্য করতে পারেন:
SEC_TO_TIMEWAIT=1
echo ${SEC_TO_TIMEWAIT} > /proc/sys/net/ipv4/tcp_tw_recycle
echo ${SEC_TO_TIMEWAIT} > /proc/sys/net/ipv4/tcp_tw_reuse
এটি 1 সেকেন্ডের মধ্যে TIME_WAITs সময় শেষ করবে।
Creditণ দেওয়ার জন্য যেখানে creditণ দেওয়ার জন্য ...
wait_timeout
যে সফ্টওয়্যারটি উন্মুক্ত থাকার প্রত্যাশা করলে কোনও সংক্ষিপ্ত সংযোগ বন্ধ হওয়ার কারণে যদি আপনার ওয়েবসাইটটি সফ্টওয়্যারটি ভেঙে না যায় ।