{"id":11274,"date":"2023-04-01T01:56:23","date_gmt":"2023-04-01T08:56:23","guid":{"rendered":"https:\/\/www.xh86.me\/?p=11274"},"modified":"2023-04-01T02:05:03","modified_gmt":"2023-04-01T09:05:03","slug":"debian%e3%80%81ubuntu%e5%92%8ccentos%e7%9a%84kvm%e8%99%9a%e6%8b%9f%e5%8c%96%e4%bc%98%e5%8c%96%e8%84%9a%e6%9c%ac","status":"publish","type":"post","link":"https:\/\/www.xh86.me\/?p=11274","title":{"rendered":"Debian\u3001Ubuntu\u548cCentOS\u7684KVM\u865a\u62df\u5316\u4f18\u5316\u811a\u672c"},"content":{"rendered":"<p>#!\/bin\/bash<\/p>\n<p># \u68c0\u6d4b\u53d1\u884c\u7248<br \/>\nif [ -f \/etc\/debian_version ]; then<br \/>\nos_release=&#8221;debian&#8221;<br \/>\nelif [ -f \/etc\/centos-release ]; then<br \/>\nos_release=&#8221;centos&#8221;<br \/>\nelif [ -f \/etc\/lsb-release ]; then<br \/>\nos_release=&#8221;ubuntu&#8221;<br \/>\nelse<br \/>\necho &#8220;Unsupported distribution!&#8221;<br \/>\nexit 1<br \/>\nfi<\/p>\n<p># \u66f4\u65b0\u7cfb\u7edf<br \/>\ncase $os_release in<br \/>\ndebian|ubuntu)<br \/>\napt update &amp;&amp; apt upgrade -y<br \/>\n;;<br \/>\ncentos)<br \/>\nyum update -y<br \/>\n;;<br \/>\n*)<br \/>\necho &#8220;Unsupported distribution!&#8221;<br \/>\nexit 1<br \/>\n;;<br \/>\nesac<\/p>\n<p># \u542f\u7528KSM<br \/>\necho 1 &gt; \/sys\/kernel\/mm\/ksm\/run<br \/>\necho 1000 &gt; \/sys\/kernel\/mm\/ksm\/sleep_millisecs<\/p>\n<p># \u542f\u7528\u900f\u660e\u5927\u9875<br \/>\necho always &gt; \/sys\/kernel\/mm\/transparent_hugepage\/enabled<\/p>\n<p># \u7981\u7528\u5de8\u578b\u9875<br \/>\necho never &gt; \/sys\/kernel\/mm\/hugepages\/hugepages-2048kB\/nr_hugepages<\/p>\n<p># \u542f\u7528CPU\u8d85\u7ebf\u7a0b<br \/>\necho on &gt; \/sys\/devices\/system\/cpu\/smt\/control<\/p>\n<p># \u542f\u7528\u5d4c\u5957\u865a\u62df\u5316<br \/>\necho &#8220;options kvm_intel nested=1&#8221; &gt; \/etc\/modprobe.d\/kvm_intel.conf<br \/>\necho &#8220;options kvm_amd nested=1&#8221; &gt; \/etc\/modprobe.d\/kvm_amd.conf<br \/>\nrmmod kvm_intel kvm_amd<br \/>\nmodprobe kvm_intel kvm_amd<\/p>\n<p># \u4f18\u5316\u865a\u62df\u673a\u78c1\u76d8\u6027\u80fd<br \/>\necho &#8220;options virtio_blk add_host_latency_ns=0&#8221; &gt; \/etc\/modprobe.d\/virtio_blk.conf<br \/>\nrmmod virtio_blk<br \/>\nmodprobe virtio_blk<\/p>\n<p># \u4fee\u6539I\/O\u8c03\u5ea6\u5668<br \/>\necho noop &gt; \/sys\/block\/sda\/queue\/scheduler<\/p>\n<p># \u5f00\u542fNUMA\u67b6\u6784\u4f18\u5316<br \/>\nif [[ &#8220;$(lscpu | grep -i numa)&#8221; ]]; then<br \/>\ncase $os_release in<br \/>\ndebian|ubuntu)<br \/>\napt install -y numactl<br \/>\n;;<br \/>\ncentos)<br \/>\nyum install -y numactl<br \/>\n;;<br \/>\n*)<br \/>\necho &#8220;Unsupported distribution!&#8221;<br \/>\nexit 1<br \/>\n;;<br \/>\nesac<br \/>\nfi<\/p>\n<p># \u5347\u7ea7\u5185\u6838\u5230\u6700\u65b0\u6700\u7a33\u5b9a\u7248\u672c<br \/>\ncase $os_release in<br \/>\ndebian|ubuntu)<br \/>\napt install -y linux-image-generic<br \/>\n;;<br \/>\ncentos)<br \/>\nyum install -y kernel<br \/>\n;;<br \/>\n*)<br \/>\necho &#8220;Unsupported distribution!&#8221;<br \/>\nexit 1<br \/>\n;;<br \/>\nesac<\/p>\n<p># \u6dfb\u52a08GB\u7684swap<br \/>\nfallocate -l 8G \/swapfile<br \/>\nchmod 600 \/swapfile<br \/>\nmkswap \/swapfile<br \/>\nswapon \/swapfile<br \/>\necho &#8220;\/swapfile none swap sw 0 0&#8221; &gt;&gt; \/etc\/fstab<\/p>\n<p># \u5185\u6838\u7f51\u7edc\u6027\u80fd\u4f18\u5316\u548c\u9ad8\u5e76\u53d1\u4f18\u5316<\/p>\n<p>#\u521b\u5efa\u5185\u6838\u53c2\u6570\u4f18\u5316\u914d\u7f6e\u6587\u4ef6<\/p>\n<p>cat &lt;&lt;EOF &gt; \/etc\/sysctl.d\/99-kvm-optimization.conf<\/p>\n<p># \u542f\u7528IP\u8f6c\u53d1<\/p>\n<p>net.ipv4.ip_forward = 1<\/p>\n<p>net.ipv6.conf.all.forwarding = 1<\/p>\n<p># TCP\u5185\u5b58\u5206\u914d\u4f18\u5316<\/p>\n<p>net.core.wmem_max = 16777216<\/p>\n<p>net.core.rmem_max = 16777216<\/p>\n<p>net.ipv4.tcp_rmem = 4096 87380 16777216<\/p>\n<p>net.ipv4.tcp_wmem = 4096 65536 16777216<\/p>\n<p># TCP\u8fde\u63a5\u8ddf\u8e2a\u4f18\u5316<\/p>\n<p>net.netfilter.nf_conntrack_max = 1000000<\/p>\n<p>net.netfilter.nf_conntrack_tcp_timeout_established = 1200<\/p>\n<p># \u542f\u7528TCP Fast Open<\/p>\n<p>net.ipv4.tcp_fastopen = 3<\/p>\n<p># \u8c03\u6574TCP Keepalive\u8bbe\u7f6e net.ipv4.tcp_keepalive_time = 1200<\/p>\n<p>net.ipv4.tcp_keepalive_probes = 5<\/p>\n<p>net.ipv4.tcp_keepalive_intvl = 15<\/p>\n<p># \u7981\u7528ICMP\u91cd\u5b9a\u5411<\/p>\n<p>net.ipv4.conf.all.accept_redirects = 0<\/p>\n<p>net.ipv4.conf.default.accept_redirects = 0<\/p>\n<p>#\u7981\u7528TCP\u6162\u542f\u52a8<\/p>\n<p>net.ipv4.tcp_slow_start_after_idle = 0<\/p>\n<p>#\u5f00\u542fTCP\u8fde\u63a5\u590d\u7528<\/p>\n<p>net.ipv4.tcp_tw_reuse = 1<\/p>\n<p>#\u63d0\u9ad8\u7cfb\u7edf\u6587\u4ef6\u63cf\u8ff0\u7b26\u9650\u5236<\/p>\n<p>fs.file-max = 100000<\/p>\n<p>#\u8c03\u6574\u5185\u6838\u53c2\u6570\u4ee5\u9002\u5e94\u9ad8\u5e76\u53d1\u573a\u666f<\/p>\n<p>net.core.somaxconn = 65535<\/p>\n<p>net.core.netdev_max_backlog = 65535<\/p>\n<p>net.ipv4.tcp_max_syn_backlog = 65535<\/p>\n<p>net.ipv4.tcp_syncookies = 1<\/p>\n<p>#\u4f18\u5316TCP\u6027\u80fd<\/p>\n<p>net.ipv4.tcp_tw_reuse = 1<\/p>\n<p>net.ipv4.tcp_tw_recycle = 0<\/p>\n<p>net.ipv4.tcp_fin_timeout = 30<\/p>\n<p>net.ipv4.tcp_keepalive_time = 1200<\/p>\n<p>net.ipv4.tcp_keepalive_probes = 5<\/p>\n<p>net.ipv4.tcp_keepalive_intvl = 15<\/p>\n<p>net.ipv4.tcp_rmem = 4096 87380 16777216<\/p>\n<p>net.ipv4.tcp_wmem = 4096 65536 16777216<\/p>\n<p>#\u4f18\u5316UDP\u6027\u80fd<\/p>\n<p>net.ipv4.udp_rmem_min = 8192<\/p>\n<p>net.ipv4.udp_wmem_min = 8192<\/p>\n<p>#\u5f00\u542f\u53cd\u5411\u8def\u5f84\u8fc7\u6ee4<\/p>\n<p>net.ipv4.conf.all.rp_filter = 1<\/p>\n<p>net.ipv4.conf.default.rp_filter = 1<\/p>\n<p>#\u9632\u6b62\u7f51\u7edc\u653b\u51fb<\/p>\n<p>net.ipv4.tcp_syncookies = 1<\/p>\n<p>net.ipv4.tcp_max_syn_backlog = 20480<\/p>\n<p># \u9632\u6b62ICMP Flood\u653b\u51fb<\/p>\n<p>net.ipv4.icmp_echo_ignore_broadcasts = 1<\/p>\n<p>net.ipv4.icmp_ignore_bogus_error_responses = 1<\/p>\n<p>net.ipv4.icmp_ratelimit = 1000<\/p>\n<p># \u9632\u6b62SYN Flood\u653b\u51fb<\/p>\n<p>net.ipv4.tcp_syncookies = 1<\/p>\n<p>net.ipv4.tcp_synack_retries = 2<\/p>\n<p>net.ipv4.tcp_syn_retries = 5<\/p>\n<p># \u8c03\u6574TIME-WAIT\u5957\u63a5\u5b57\u91cd\u7528\u7b49\u5f85\u65f6\u95f4<\/p>\n<p>net.ipv4.tcp_fin_timeout = 30<\/p>\n<p>EOF<\/p>\n<p>\u5e94\u7528\u5185\u6838\u53c2\u6570\u4f18\u5316\u914d\u7f6e<\/p>\n<p>sysctl &#8211;system<\/p>\n<p>echo &#8220;KVM virtualization optimization completed. Please reboot the system for all changes to take effect.&#8221;<\/p>\n<p>&nbsp;<\/p>\n<p>\u5c06\u6b64\u811a\u672c\u4fdd\u5b58\u4e3a`kvm_optimization.sh`\uff0c\u7136\u540e\u4f7f\u7528root\u6743\u9650\u8fd0\u884c\u5b83\uff1a<\/p>\n<p>chmod +x kvm_optimization.sh<br \/>\nsudo .\/kvm_optimization.sh<\/p>\n","protected":false},"excerpt":{"rendered":"<p>#!\/bin\/bash # \u68c0\u6d4b\u53d1\u884c\u7248 if [ -f \/etc\/debian_version ]; then [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,3],"tags":[],"class_list":["post-11274","post","type-post","status-publish","format-standard","hentry","category-linux","category-system"],"_links":{"self":[{"href":"https:\/\/www.xh86.me\/index.php?rest_route=\/wp\/v2\/posts\/11274","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.xh86.me\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.xh86.me\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.xh86.me\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.xh86.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=11274"}],"version-history":[{"count":3,"href":"https:\/\/www.xh86.me\/index.php?rest_route=\/wp\/v2\/posts\/11274\/revisions"}],"predecessor-version":[{"id":11277,"href":"https:\/\/www.xh86.me\/index.php?rest_route=\/wp\/v2\/posts\/11274\/revisions\/11277"}],"wp:attachment":[{"href":"https:\/\/www.xh86.me\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=11274"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.xh86.me\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=11274"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.xh86.me\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=11274"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}