{"id":35286,"date":"2025-10-28T14:21:22","date_gmt":"2025-10-28T07:21:22","guid":{"rendered":"https:\/\/interdata.vn\/blog\/?p=35286"},"modified":"2025-10-28T14:21:22","modified_gmt":"2025-10-28T07:21:22","slug":"huong-dan-toi-uu-hoa-vps-linux","status":"publish","type":"post","link":"https:\/\/interdata.vn\/blog\/huong-dan-toi-uu-hoa-vps-linux\/","title":{"rendered":"H\u01b0\u1edbng d\u1eabn t\u1ed1i \u01b0u h\u00f3a VPS Linux: T\u0103ng t\u1ed1c, b\u1ea3o m\u1eadt &#038; ti\u1ebft ki\u1ec7m t\u00e0i nguy\u00ean"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-white ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">N\u1ed8I DUNG<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/interdata.vn\/blog\/huong-dan-toi-uu-hoa-vps-linux\/#Tai-sao-can-toi-uu-hoa-VPS-Linux\" >T\u1ea1i sao c\u1ea7n t\u1ed1i \u01b0u h\u00f3a VPS Linux?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/interdata.vn\/blog\/huong-dan-toi-uu-hoa-vps-linux\/#Kiem-tra-hieu-nang-hien-tai-cua-VPS\" >Ki\u1ec3m tra hi\u1ec7u n\u0103ng hi\u1ec7n t\u1ea1i c\u1ee7a VPS<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/interdata.vn\/blog\/huong-dan-toi-uu-hoa-vps-linux\/#Dung-htop-top-vmstat-iostat-de-kiem-tra-CPURAMDisk\" >D\u00f9ng htop, top, vmstat, iostat \u0111\u1ec3 ki\u1ec3m tra CPU\/RAM\/Disk<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/interdata.vn\/blog\/huong-dan-toi-uu-hoa-vps-linux\/#Su-dung-cong-cu-benchmark-nhu-sysbench-hoac-Geekbench\" >S\u1eed d\u1ee5ng c\u00f4ng c\u1ee5 benchmark nh\u01b0 sysbench ho\u1eb7c Geekbench<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/interdata.vn\/blog\/huong-dan-toi-uu-hoa-vps-linux\/#Toi-uu-hoa-tai-nguyen-he-thong\" >T\u1ed1i \u01b0u h\u00f3a t\u00e0i nguy\u00ean h\u1ec7 th\u1ed1ng<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/interdata.vn\/blog\/huong-dan-toi-uu-hoa-vps-linux\/#Giam-tai-CPU-va-RAM-bang-cach-tat-dich-vu-khong-can-thiet-services\" >Gi\u1ea3m t\u1ea3i CPU v\u00e0 RAM b\u1eb1ng c\u00e1ch t\u1eaft d\u1ecbch v\u1ee5 kh\u00f4ng c\u1ea7n thi\u1ebft (services)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/interdata.vn\/blog\/huong-dan-toi-uu-hoa-vps-linux\/#Cau-hinh-swap-va-swappiness-hop-ly\" >C\u1ea5u h\u00ecnh swap v\u00e0 swappiness h\u1ee3p l\u00fd<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/interdata.vn\/blog\/huong-dan-toi-uu-hoa-vps-linux\/#Su-dung-cron-de-tu-dong-don-rac-va-log-file\" >S\u1eed d\u1ee5ng cron \u0111\u1ec3 t\u1ef1 \u0111\u1ed9ng d\u1ecdn r\u00e1c v\u00e0 log file<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/interdata.vn\/blog\/huong-dan-toi-uu-hoa-vps-linux\/#Toi-uu-hoa-he-thong-luu-tru-Disk-IO\" >T\u1ed1i \u01b0u h\u00f3a h\u1ec7 th\u1ed1ng l\u01b0u tr\u1eef (Disk &amp; I\/O)<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/interdata.vn\/blog\/huong-dan-toi-uu-hoa-vps-linux\/#Chon-filesystem-phu-hop-ext4-xfs-btrfs\" >Ch\u1ecdn filesystem ph\u00f9 h\u1ee3p (ext4, xfs, btrfs)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/interdata.vn\/blog\/huong-dan-toi-uu-hoa-vps-linux\/#Kich-hoat-noatime-deadline-scheduler-de-giam-IO\" >K\u00edch ho\u1ea1t noatime, deadline scheduler \u0111\u1ec3 gi\u1ea3m I\/O<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/interdata.vn\/blog\/huong-dan-toi-uu-hoa-vps-linux\/#Don-dep-file-log-cache-va-su-dung-tmpfs\" >D\u1ecdn d\u1eb9p file log, cache v\u00e0 s\u1eed d\u1ee5ng tmpfs<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/interdata.vn\/blog\/huong-dan-toi-uu-hoa-vps-linux\/#Toi-uu-hoa-mang-va-ket-noi\" >T\u1ed1i \u01b0u h\u00f3a m\u1ea1ng v\u00e0 k\u1ebft n\u1ed1i<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/interdata.vn\/blog\/huong-dan-toi-uu-hoa-vps-linux\/#Cau-hinh-sysctlconf-de-toi-uu-TCPIP-stack\" >C\u1ea5u h\u00ecnh sysctl.conf \u0111\u1ec3 t\u1ed1i \u01b0u TCP\/IP stack<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/interdata.vn\/blog\/huong-dan-toi-uu-hoa-vps-linux\/#Bat-Gzip-KeepAlive-va-HTTP2-hoac-HTTP3-neu-dung-web-server\" >B\u1eadt Gzip, KeepAlive, v\u00e0 HTTP\/2 (ho\u1eb7c HTTP\/3) n\u1ebfu d\u00f9ng web server<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/interdata.vn\/blog\/huong-dan-toi-uu-hoa-vps-linux\/#Kiem-tra-bang-thong-va-do-tre-bang-iperf-ping-traceroute\" >Ki\u1ec3m tra b\u0103ng th\u00f4ng v\u00e0 \u0111\u1ed9 tr\u1ec5 b\u1eb1ng iperf, ping, traceroute<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/interdata.vn\/blog\/huong-dan-toi-uu-hoa-vps-linux\/#Tang-cuong-bao-mat-khi-toi-uu-hoa-VPS\" >T\u0103ng c\u01b0\u1eddng b\u1ea3o m\u1eadt khi t\u1ed1i \u01b0u h\u00f3a VPS<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/interdata.vn\/blog\/huong-dan-toi-uu-hoa-vps-linux\/#Cau-hinh-tuong-lua-ufw-hoac-firewalld\" >C\u1ea5u h\u00ecnh t\u01b0\u1eddng l\u1eeda ufw ho\u1eb7c firewalld<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/interdata.vn\/blog\/huong-dan-toi-uu-hoa-vps-linux\/#Cai-dat-Fail2Ban-de-chan-brute-force\" >C\u00e0i \u0111\u1eb7t Fail2Ban \u0111\u1ec3 ch\u1eb7n brute-force<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/interdata.vn\/blog\/huong-dan-toi-uu-hoa-vps-linux\/#Gioi-han-quyen-truy-cap-SSH-va-bat-xac-thuc-key\" >Gi\u1edbi h\u1ea1n quy\u1ec1n truy c\u1eadp SSH v\u00e0 b\u1eadt x\u00e1c th\u1ef1c key<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/interdata.vn\/blog\/huong-dan-toi-uu-hoa-vps-linux\/#Toi-uu-hoa-dich-vu-web-va-database-LAMPLEMP-Stack\" >T\u1ed1i \u01b0u h\u00f3a d\u1ecbch v\u1ee5 web v\u00e0 database (LAMP\/LEMP Stack)<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/interdata.vn\/blog\/huong-dan-toi-uu-hoa-vps-linux\/#Toi-uu-NginxApache-bat-cache-gioi-han-worker-processes\" >T\u1ed1i \u01b0u Nginx\/Apache: b\u1eadt cache, gi\u1edbi h\u1ea1n worker_processes<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/interdata.vn\/blog\/huong-dan-toi-uu-hoa-vps-linux\/#Toi-uu-MySQLMariaDB-chinh-innodb-buffer-pool-size-query-cache\" >T\u1ed1i \u01b0u MySQL\/MariaDB: ch\u1ec9nh innodb_buffer_pool_size, query_cache<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"https:\/\/interdata.vn\/blog\/huong-dan-toi-uu-hoa-vps-linux\/#Dung-Redis-hoac-Memcached-de-cache-du-lieu-Object-Cache\" >D\u00f9ng Redis ho\u1eb7c Memcached \u0111\u1ec3 cache d\u1eef li\u1ec7u (Object Cache)<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-25\" href=\"https:\/\/interdata.vn\/blog\/huong-dan-toi-uu-hoa-vps-linux\/#Giam-sat-va-bao-tri-dinh-ky\" >Gi\u00e1m s\u00e1t v\u00e0 b\u1ea3o tr\u00ec \u0111\u1ecbnh k\u1ef3<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-26\" href=\"https:\/\/interdata.vn\/blog\/huong-dan-toi-uu-hoa-vps-linux\/#Theo-doi-log-va-canh-bao-bang-Netdata-Zabbix-Prometheus\" >Theo d\u00f5i log v\u00e0 c\u1ea3nh b\u00e1o b\u1eb1ng Netdata, Zabbix, Prometheus<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-27\" href=\"https:\/\/interdata.vn\/blog\/huong-dan-toi-uu-hoa-vps-linux\/#Thiet-lap-backup-dinh-ky-va-tu-dong-cap-nhat-bao-mat\" >Thi\u1ebft l\u1eadp backup \u0111\u1ecbnh k\u1ef3 v\u00e0 t\u1ef1 \u0111\u1ed9ng c\u1eadp nh\u1eadt b\u1ea3o m\u1eadt<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-28\" href=\"https:\/\/interdata.vn\/blog\/huong-dan-toi-uu-hoa-vps-linux\/#Mot-so-cau-hoi-thuong-gap-FAQs\" >M\u1ed9t s\u1ed1 c\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p (FAQs)<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-29\" href=\"https:\/\/interdata.vn\/blog\/huong-dan-toi-uu-hoa-vps-linux\/#Toi-uu-hoa-VPS-Linux-co-lam-mat-du-lieu-khong\" >T\u1ed1i \u01b0u h\u00f3a VPS Linux c\u00f3 l\u00e0m m\u1ea5t d\u1eef li\u1ec7u kh\u00f4ng?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-30\" href=\"https:\/\/interdata.vn\/blog\/huong-dan-toi-uu-hoa-vps-linux\/#Bao-lau-nen-toi-uu-va-kiem-tra-VPS-mot-lan\" >Bao l\u00e2u n\u00ean t\u1ed1i \u01b0u v\u00e0 ki\u1ec3m tra VPS m\u1ed9t l\u1ea7n?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-31\" href=\"https:\/\/interdata.vn\/blog\/huong-dan-toi-uu-hoa-vps-linux\/#VPS-cua-InterData-da-duoc-toi-uu-san-chua\" >VPS c\u1ee7a InterData \u0111\u00e3 \u0111\u01b0\u1ee3c t\u1ed1i \u01b0u s\u1eb5n ch\u01b0a?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-32\" href=\"https:\/\/interdata.vn\/blog\/huong-dan-toi-uu-hoa-vps-linux\/#Lam-the-nao-de-hoan-tac-revert-neu-cau-hinh-sai\" >L\u00e0m th\u1ebf n\u00e0o \u0111\u1ec3 ho\u00e0n t\u00e1c (revert) n\u1ebfu c\u1ea5u h\u00ecnh sai?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-33\" href=\"https:\/\/interdata.vn\/blog\/huong-dan-toi-uu-hoa-vps-linux\/#Toi-uu-RAM-hay-CPU-quan-trong-hon\" >T\u1ed1i \u01b0u RAM hay CPU quan tr\u1ecdng h\u01a1n?<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-34\" href=\"https:\/\/interdata.vn\/blog\/huong-dan-toi-uu-hoa-vps-linux\/#Loi-ket\" >L\u1eddi k\u1ebft<\/a><\/li><\/ul><\/nav><\/div>\n<p>B\u1ea1n \u0111ang t\u00ecm ki\u1ebfm <a href=\"https:\/\/interdata.vn\/blog\/huong-dan-toi-uu-hoa-vps-linux\/\"><strong>h\u01b0\u1edbng d\u1eabn t\u1ed1i \u01b0u h\u00f3a VPS Linux<\/strong><\/a> \u0111\u1ec3 h\u1ec7 th\u1ed1ng ch\u1ea1y m\u01b0\u1ee3t m\u00e0 v\u00e0 an to\u00e0n h\u01a1n? B\u00e0i vi\u1ebft n\u00e0y c\u1ee7a <a href=\"https:\/\/interdata.vn\/\"><strong>InterData<\/strong><\/a> s\u1ebd cung c\u1ea5p c\u00e1c k\u1ef9 thu\u1eadt chuy\u00ean s\u00e2u, t\u1eeb tinh ch\u1ec9nh t\u00e0i nguy\u00ean, t\u0103ng t\u1ed1c I\/O, \u0111\u1ebfn b\u1ea3o m\u1eadt SSH v\u00e0 t\u1ed1i \u01b0u web server. H\u00e3y c\u00f9ng t\u00ecm hi\u1ec3u c\u00e1c b\u01b0\u1edbc \u0111\u01a1n gi\u1ea3n nh\u01b0ng hi\u1ec7u qu\u1ea3 \u0111\u1ec3 VPS c\u1ee7a b\u1ea1n ho\u1ea1t \u0111\u1ed9ng v\u1edbi hi\u1ec7u su\u1ea5t cao nh\u1ea5t, ti\u1ebft ki\u1ec7m chi ph\u00ed v\u00e0 \u0111\u1ea3m b\u1ea3o an ninh m\u1ea1ng.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Tai-sao-can-toi-uu-hoa-VPS-Linux\"><\/span>T\u1ea1i sao c\u1ea7n t\u1ed1i \u01b0u h\u00f3a VPS Linux?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Nhi\u1ec1u ng\u01b0\u1eddi d\u00f9ng sau khi thu\u00ea VPS Linux th\u01b0\u1eddng ch\u1ec9 c\u00e0i \u0111\u1eb7t c\u00e1c d\u1ecbch v\u1ee5 c\u1ea7n thi\u1ebft v\u00e0 \u0111\u1ec3 h\u1ec7 th\u1ed1ng ch\u1ea1y v\u1edbi c\u1ea5u h\u00ecnh m\u1eb7c \u0111\u1ecbnh. Tuy nhi\u00ean, c\u1ea5u h\u00ecnh m\u1eb7c \u0111\u1ecbnh c\u1ee7a h\u1ec7 \u0111i\u1ec1u h\u00e0nh \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf \u0111\u1ec3 &#8220;ch\u1ea1y \u0111\u01b0\u1ee3c&#8221; tr\u00ean nhi\u1ec1u lo\u1ea1i ph\u1ea7n c\u1ee9ng v\u00e0 cho nhi\u1ec1u m\u1ee5c \u0111\u00edch, ch\u1ee9 ch\u01b0a ph\u1ea3i l\u00e0 c\u1ea5u h\u00ecnh t\u1ed1t nh\u1ea5t cho nhu c\u1ea7u <i>c\u1ee5 th\u1ec3<\/i> c\u1ee7a b\u1ea1n.<\/p>\n<p>Vi\u1ec7c t\u1ed1i \u01b0u h\u00f3a VPS Linux mang l\u1ea1i nhi\u1ec1u l\u1ee3i \u00edch thi\u1ebft th\u1ef1c. \u0110\u1ea7u ti\u00ean v\u00e0 quan tr\u1ecdng nh\u1ea5t l\u00e0 c\u1ea3i thi\u1ec7n hi\u1ec7u su\u1ea5t. M\u1ed9t VPS \u0111\u01b0\u1ee3c tinh ch\u1ec9nh \u0111\u00fang c\u00e1ch s\u1ebd ph\u1ea3n h\u1ed3i nhanh h\u01a1n, gi\u00fap website t\u1ea3i trang nhanh h\u01a1n, c\u1ea3i thi\u1ec7n tr\u1ea3i nghi\u1ec7m ng\u01b0\u1eddi d\u00f9ng v\u00e0 l\u00e0 m\u1ed9t y\u1ebfu\u00ea t\u1ed1 quan tr\u1ecdng trong SEO.<\/p>\n<p>Th\u1ee9 hai, t\u1ed1i \u01b0u h\u00f3a gi\u00fap t\u0103ng kh\u1ea3 n\u0103ng ch\u1ecbu t\u1ea3i. Khi website c\u1ee7a b\u1ea1n c\u00f3 l\u01b0\u1ee3ng truy c\u1eadp t\u0103ng \u0111\u1ed9t bi\u1ebfn, m\u1ed9t VPS kh\u00f4ng \u0111\u01b0\u1ee3c t\u1ed1i \u01b0u c\u00f3 th\u1ec3 b\u1ecb qu\u00e1 t\u1ea3i, treo ho\u1eb7c ph\u1ea3n h\u1ed3i r\u1ea5t ch\u1eadm. Tinh ch\u1ec9nh h\u1ec7 th\u1ed1ng gi\u00fap VPS x\u1eed l\u00fd \u0111\u01b0\u1ee3c nhi\u1ec1u y\u00eau c\u1ea7u \u0111\u1ed3ng th\u1eddi m\u1ed9t c\u00e1ch \u1ed5n \u0111\u1ecbnh.<\/p>\n<p>Th\u1ee9 ba, \u0111i\u1ec1u n\u00e0y gi\u00fap b\u1ea1n ti\u1ebft ki\u1ec7m chi ph\u00ed t\u00e0i nguy\u00ean. Khi c\u00e1c d\u1ecbch v\u1ee5 ch\u1ea1y hi\u1ec7u qu\u1ea3, VPS s\u1ebd ti\u00eau th\u1ee5 \u00edt CPU, RAM v\u00e0 b\u0103ng th\u00f4ng h\u01a1n cho c\u00f9ng m\u1ed9t kh\u1ed1i l\u01b0\u1ee3ng c\u00f4ng vi\u1ec7c. B\u1ea1n c\u00f3 th\u1ec3 kh\u00f4ng c\u1ea7n n\u00e2ng c\u1ea5p l\u00ean g\u00f3i VPS cao h\u01a1n, qua \u0111\u00f3 ti\u1ebft ki\u1ec7m ng\u00e2n s\u00e1ch v\u1eadn h\u00e0nh.<\/p>\n<p>Cu\u1ed1i c\u00f9ng, t\u1ed1i \u01b0u h\u00f3a c\u0169ng bao g\u1ed3m c\u1ea3 vi\u1ec7c &#8220;l\u00e0m c\u1ee9ng&#8221; (hardening) h\u1ec7 th\u1ed1ng. M\u1ed9t VPS v\u1edbi c\u1ea5u h\u00ecnh m\u1eb7c \u0111\u1ecbnh c\u00f3 th\u1ec3 t\u1ed3n t\u1ea1i c\u00e1c l\u1ed7 h\u1ed5ng b\u1ea3o m\u1eadt. T\u0103ng c\u01b0\u1eddng b\u1ea3o m\u1eadt l\u00e0 m\u1ed9t ph\u1ea7n kh\u00f4ng th\u1ec3 t\u00e1ch r\u1eddi c\u1ee7a qu\u00e1 tr\u00ecnh t\u1ed1i \u01b0u, gi\u00fap gi\u1ea3m thi\u1ec3u r\u1ee7i ro b\u1ecb t\u1ea5n c\u00f4ng, m\u1ea5t d\u1eef li\u1ec7u.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-35292\" src=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Toi-uu-hoa-VPS-Linux-1.jpg\" alt=\"T\u1ed1i \u01b0u h\u00f3a VPS Linux\" width=\"600\" height=\"600\" title=\"\" srcset=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Toi-uu-hoa-VPS-Linux-1.jpg 600w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Toi-uu-hoa-VPS-Linux-1-300x300.jpg 300w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Toi-uu-hoa-VPS-Linux-1-150x150.jpg 150w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Kiem-tra-hieu-nang-hien-tai-cua-VPS\"><\/span>Ki\u1ec3m tra hi\u1ec7u n\u0103ng hi\u1ec7n t\u1ea1i c\u1ee7a VPS<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Tr\u01b0\u1edbc khi b\u1eaft tay v\u00e0o t\u1ed1i \u01b0u h\u00f3a, b\u1ea1n c\u1ea7n bi\u1ebft ch\u00ednh x\u00e1c VPS c\u1ee7a m\u00ecnh \u0111ang ho\u1ea1t \u0111\u1ed9ng nh\u01b0 th\u1ebf n\u00e0o. B\u1ea1n kh\u00f4ng th\u1ec3 c\u1ea3i thi\u1ec7n th\u1ee9 m\u00e0 b\u1ea1n kh\u00f4ng th\u1ec3 \u0111o l\u01b0\u1eddng. Vi\u1ec7c ki\u1ec3m tra n\u00e0y gi\u00fap x\u00e1c \u0111\u1ecbnh c\u00e1c &#8220;n\u00fat th\u1eaft c\u1ed5 chai&#8221; (bottleneck) \u2013 nh\u1eefng \u0111i\u1ec3m y\u1ebfu \u0111ang l\u00e0m ch\u1eadm h\u1ec7 th\u1ed1ng c\u1ee7a b\u1ea1n (v\u00ed d\u1ee5: CPU y\u1ebfu, thi\u1ebfu RAM, hay \u1ed5 c\u1ee9ng ch\u1eadm).<\/p>\n<p>Ch\u00fang ta s\u1ebd s\u1eed d\u1ee5ng k\u1ebft h\u1ee3p c\u00e1c c\u00f4ng c\u1ee5 gi\u00e1m s\u00e1t h\u1ec7 th\u1ed1ng theo th\u1eddi gian th\u1ef1c v\u00e0 c\u00e1c c\u00f4ng c\u1ee5 benchmark (\u0111o \u0111i\u1ec3m chu\u1ea9n) \u0111\u1ec3 c\u00f3 c\u00e1i nh\u00ecn to\u00e0n di\u1ec7n.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-35293\" src=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Toi-uu-hoa-VPS-Linux-2.jpg\" alt=\"T\u1ed1i \u01b0u h\u00f3a VPS Linux\" width=\"600\" height=\"600\" title=\"\" srcset=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Toi-uu-hoa-VPS-Linux-2.jpg 600w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Toi-uu-hoa-VPS-Linux-2-300x300.jpg 300w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Toi-uu-hoa-VPS-Linux-2-150x150.jpg 150w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Dung-htop-top-vmstat-iostat-de-kiem-tra-CPURAMDisk\"><\/span>D\u00f9ng <code>htop<\/code>, <code>top<\/code>, <code>vmstat<\/code>, <code>iostat<\/code> \u0111\u1ec3 ki\u1ec3m tra CPU\/RAM\/Disk<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0110\u00e2y l\u00e0 nh\u1eefng c\u00f4ng c\u1ee5 d\u00f2ng l\u1ec7nh c\u01a1 b\u1ea3n nh\u01b0ng c\u1ef1c k\u1ef3 m\u1ea1nh m\u1ebd:<\/p>\n<ul>\n<li><code><strong>top<\/strong><\/code><strong> v\u00e0 <\/strong><code><strong>htop<\/strong><\/code>: Hai l\u1ec7nh n\u00e0y cho b\u1ea1n th\u1ea5y c\u00e1c ti\u1ebfn tr\u00ecnh (processes) \u0111ang ch\u1ea1y, l\u01b0\u1ee3ng CPU v\u00e0 RAM m\u00e0 ch\u00fang \u0111ang s\u1eed d\u1ee5ng, \u0111\u01b0\u1ee3c s\u1eafp x\u1ebfp theo m\u1ee9c ti\u00eau th\u1ee5. <code>htop<\/code> l\u00e0 phi\u00ean b\u1ea3n c\u1ea3i ti\u1ebfn, c\u00f3 giao di\u1ec7n m\u00e0u s\u1eafc v\u00e0 d\u1ec5 s\u1eed d\u1ee5ng h\u01a1n. N\u1ebfu b\u1ea1n th\u1ea5y c\u1ed9t CPU lu\u00f4n \u1edf m\u1ee9c cao (tr\u00ean 80-90%) ho\u1eb7c c\u1ed9t RAM g\u1ea7n \u0111\u1ea7y, b\u1ea1n \u0111\u00e3 t\u00ecm th\u1ea5y v\u1ea5n \u0111\u1ec1.\n<ul>\n<li>B\u1ea1n c\u00f3 th\u1ec3 c\u00e0i <code>htop<\/code> b\u1eb1ng l\u1ec7nh: <code>sudo apt install htop<\/code> (tr\u00ean Ubuntu\/Debian) ho\u1eb7c <code>sudo yum install htop<\/code> (tr\u00ean CentOS).<\/li>\n<\/ul>\n<\/li>\n<li><code><strong>vmstat<\/strong><\/code>: L\u1ec7nh n\u00e0y cung c\u1ea5p th\u00f4ng tin v\u1ec1 b\u1ed9 nh\u1edb \u1ea3o (virtual memory). H\u00e3y ch\u00fa \u00fd \u0111\u1ebfn hai c\u1ed9t <code>si<\/code> (swap-in) v\u00e0 <code>so<\/code> (swap-out). N\u1ebfu hai c\u1ed9t n\u00e0y c\u00f3 s\u1ed1 li\u1ec7u nh\u1ea3y li\u00ean t\u1ee5c, \u0111i\u1ec1u \u0111\u00f3 c\u00f3 ngh\u0129a l\u00e0 h\u1ec7 th\u1ed1ng \u0111ang thi\u1ebfu RAM v\u1eadt l\u00fd v\u00e0 ph\u1ea3i s\u1eed d\u1ee5ng &#8220;swap&#8221; (b\u1ed9 nh\u1edb \u1ea3o tr\u00ean \u1ed5 c\u1ee9ng) r\u1ea5t nhi\u1ec1u. \u0110\u00e2y l\u00e0 m\u1ed9t d\u1ea5u hi\u1ec7u r\u00f5 r\u1ec7t c\u1ee7a vi\u1ec7c thi\u1ebfu RAM.<\/li>\n<li><code><strong>iostat<\/strong><\/code>: C\u00f4ng c\u1ee5 n\u00e0y chuy\u00ean d\u1ee5ng \u0111\u1ec3 theo d\u00f5i hi\u1ec7u su\u1ea5t I\/O (Input\/Output) c\u1ee7a \u1ed5 c\u1ee9ng. H\u00e3y xem c\u1ed9t <code>%iowait<\/code>. N\u1ebfu ch\u1ec9 s\u1ed1 n\u00e0y cao, c\u00f3 ngh\u0129a l\u00e0 CPU \u0111ang ph\u1ea3i &#8220;ch\u1edd&#8221; \u1ed5 c\u1ee9ng \u0111\u1ecdc\/ghi d\u1eef li\u1ec7u. \u0110\u00e2y l\u00e0 n\u00fat th\u1eaft c\u1ed5 chai l\u1edbn nh\u1ea5t \u0111\u1ed1i v\u1edbi c\u00e1c \u1ee9ng d\u1ee5ng n\u1eb7ng v\u1ec1 c\u01a1 s\u1edf d\u1eef li\u1ec7u.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Su-dung-cong-cu-benchmark-nhu-sysbench-hoac-Geekbench\"><\/span>S\u1eed d\u1ee5ng c\u00f4ng c\u1ee5 benchmark nh\u01b0 <code>sysbench<\/code> ho\u1eb7c <code>Geekbench<\/code><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>C\u00e1c c\u00f4ng c\u1ee5 gi\u00e1m s\u00e1t b\u00ean tr\u00ean cho th\u1ea5y hi\u1ec7u su\u1ea5t <i>hi\u1ec7n t\u1ea1i<\/i>. \u0110\u1ec3 bi\u1ebft <i>kh\u1ea3 n\u0103ng t\u1ed1i \u0111a<\/i> c\u1ee7a VPS, b\u1ea1n c\u1ea7n c\u00e1c c\u00f4ng c\u1ee5 benchmark.<\/p>\n<ul>\n<li><code><strong>sysbench<\/strong><\/code>: \u0110\u00e2y l\u00e0 c\u00f4ng c\u1ee5 \u0111a n\u0103ng \u0111\u1ec3 ki\u1ec3m tra CPU, b\u1ed9 nh\u1edb, v\u00e0 t\u1ed1c \u0111\u1ed9 I\/O c\u1ee7a \u1ed5 c\u1ee9ng. V\u00ed d\u1ee5, \u0111\u1ec3 ki\u1ec3m tra t\u1ed1c \u0111\u1ed9 CPU, b\u1ea1n c\u00f3 th\u1ec3 ch\u1ea1y: <code>sysbench cpu --cpu-max-prime=20000 run<\/code> \u0110\u1ec3 ki\u1ec3m tra t\u1ed1c \u0111\u1ed9 \u1ed5 c\u1ee9ng, b\u1ea1n c\u1ea7n t\u1ea1o file test v\u00e0 ch\u1ea1y: <code>sysbench fileio --file-total-size=2G prepare<\/code> <code>sysbench fileio --file-total-size=2G --file-test-mode=rndrw --time=60 run<\/code> <code>sysbench fileio --file-total-size=2G cleanup<\/code><\/li>\n<li><code><strong>Geekbench<\/strong><\/code>: Cung c\u1ea5p m\u1ed9t \u0111i\u1ec3m s\u1ed1 t\u1ed5ng h\u1ee3p cho hi\u1ec7u n\u0103ng CPU (\u0111\u01a1n nh\u00e2n v\u00e0 \u0111a nh\u00e2n), gi\u00fap b\u1ea1n d\u1ec5 d\u00e0ng so s\u00e1nh s\u1ee9c m\u1ea1nh VPS c\u1ee7a m\u00ecnh v\u1edbi c\u00e1c m\u00e1y ch\u1ee7 kh\u00e1c.<\/li>\n<\/ul>\n<p>Sau khi ghi l\u1ea1i c\u00e1c ch\u1ec9 s\u1ed1 &#8220;tr\u01b0\u1edbc khi t\u1ed1i \u01b0u&#8221;, b\u1ea1n \u0111\u00e3 s\u1eb5n s\u00e0ng \u0111\u1ec3 b\u1eaft \u0111\u1ea7u tinh ch\u1ec9nh h\u1ec7 th\u1ed1ng.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Toi-uu-hoa-tai-nguyen-he-thong\"><\/span>T\u1ed1i \u01b0u h\u00f3a t\u00e0i nguy\u00ean h\u1ec7 th\u1ed1ng<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0110\u00e2y l\u00e0 b\u01b0\u1edbc tinh ch\u1ec9nh c\u00e1c th\u00e0nh ph\u1ea7n c\u1ed1t l\u00f5i c\u1ee7a h\u1ec7 \u0111i\u1ec1u h\u00e0nh \u0111\u1ec3 gi\u1ea3m t\u1ea3i, gi\u1ea3i ph\u00f3ng t\u00e0i nguy\u00ean CPU v\u00e0 RAM kh\u00f4ng c\u1ea7n thi\u1ebft.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-35295\" src=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Toi-uu-tai-nguyen-VPS.jpg\" alt=\"T\u1ed1i \u01b0u t\u00e0i nguy\u00ean VPS\" width=\"600\" height=\"600\" title=\"\" srcset=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Toi-uu-tai-nguyen-VPS.jpg 600w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Toi-uu-tai-nguyen-VPS-300x300.jpg 300w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Toi-uu-tai-nguyen-VPS-150x150.jpg 150w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Giam-tai-CPU-va-RAM-bang-cach-tat-dich-vu-khong-can-thiet-services\"><\/span>Gi\u1ea3m t\u1ea3i CPU v\u00e0 RAM b\u1eb1ng c\u00e1ch t\u1eaft d\u1ecbch v\u1ee5 kh\u00f4ng c\u1ea7n thi\u1ebft (services)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>C\u00e1c b\u1ea3n ph\u00e2n ph\u1ed1i Linux (nh\u01b0 Ubuntu, CentOS) th\u01b0\u1eddng c\u00e0i \u0111\u1eb7t s\u1eb5n nhi\u1ec1u d\u1ecbch v\u1ee5 (services) m\u00e0 c\u00f3 th\u1ec3 b\u1ea1n kh\u00f4ng bao gi\u1edd d\u00f9ng \u0111\u1ebfn. V\u00ed d\u1ee5, n\u1ebfu b\u1ea1n ch\u1ec9 ch\u1ea1y web server Nginx, b\u1ea1n kh\u00f4ng c\u1ea7n ch\u1ea1y <code>apache2<\/code>. N\u1ebfu b\u1ea1n kh\u00f4ng d\u00f9ng VPS l\u00e0m mail server, b\u1ea1n c\u00f3 th\u1ec3 t\u1eaft <code>postfix<\/code>.<\/p>\n<p>M\u1ed7i d\u1ecbch v\u1ee5 ch\u1ea1y ng\u1ea7m \u0111\u1ec1u ti\u00eau t\u1ed1n m\u1ed9t l\u01b0\u1ee3ng RAM v\u00e0 CPU nh\u1ea5t \u0111\u1ecbnh.<\/p>\n<ol>\n<li>Li\u1ec7t k\u00ea c\u00e1c d\u1ecbch v\u1ee5 \u0111ang ch\u1ea1y v\u00e0 \u0111\u01b0\u1ee3c k\u00edch ho\u1ea1t kh\u1edfi \u0111\u1ed9ng c\u00f9ng h\u1ec7 th\u1ed1ng: <code>systemctl list-unit-files --type=service --state=enabled<\/code><\/li>\n<li>Xem x\u00e9t c\u1ea9n th\u1eadn danh s\u00e1ch n\u00e0y. N\u1ebfu b\u1ea1n th\u1ea5y m\u1ed9t d\u1ecbch v\u1ee5 kh\u00f4ng c\u1ea7n thi\u1ebft (v\u00ed d\u1ee5: <code>ModemManager<\/code>, <code>bluetooth.service<\/code> tr\u00ean VPS), h\u00e3y t\u1eaft : <code>sudo systemctl stop ten-dich-vu<\/code> (D\u1eebng d\u1ecbch v\u1ee5 ngay l\u1eadp t\u1ee9c) <code>sudo systemctl disable ten-dich-vu<\/code> (Ng\u0103n kh\u00f4ng cho kh\u1edfi \u0111\u1ed9ng c\u00f9ng h\u1ec7 th\u1ed1ng)<\/li>\n<\/ol>\n<p><i>L\u01b0u \u00fd: H\u00e3y c\u1ea9n th\u1eadn kh\u00f4ng t\u1eaft c\u00e1c d\u1ecbch v\u1ee5 quan tr\u1ecdng nh\u01b0 <\/i><code><i>sshd<\/i><\/code><i> (d\u1ecbch v\u1ee5 SSH) ho\u1eb7c <\/i><code><i>systemd-networkd<\/i><\/code><i> (d\u1ecbch v\u1ee5 m\u1ea1ng).<\/i><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Cau-hinh-swap-va-swappiness-hop-ly\"><\/span>C\u1ea5u h\u00ecnh <code>swap<\/code> v\u00e0 <code>swappiness<\/code> h\u1ee3p l\u00fd<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Swap l\u00e0 m\u1ed9t kh\u00f4ng gian tr\u00ean \u1ed5 c\u1ee9ng \u0111\u01b0\u1ee3c d\u00f9ng l\u00e0m &#8220;RAM \u1ea3o&#8221; khi RAM v\u1eadt l\u00fd b\u1ecb \u0111\u1ea7y. V\u00ec \u1ed5 c\u1ee9ng ch\u1eadm h\u01a1n RAM r\u1ea5t nhi\u1ec1u, vi\u1ec7c h\u1ec7 th\u1ed1ng s\u1eed d\u1ee5ng swap th\u01b0\u1eddng xuy\u00ean s\u1ebd l\u00e0m VPS ch\u1eadm \u0111i \u0111\u00e1ng k\u1ec3.<\/p>\n<p><code>Swappiness<\/code> l\u00e0 m\u1ed9t th\u00f4ng s\u1ed1 c\u1ee7a kernel Linux, c\u00f3 gi\u00e1 tr\u1ecb t\u1eeb 0 \u0111\u1ebfn 100, quy \u0111\u1ecbnh m\u1ee9c \u0111\u1ed9 &#8220;h\u0103ng h\u00e1i&#8221; c\u1ee7a h\u1ec7 th\u1ed1ng khi s\u1eed d\u1ee5ng swap.<\/p>\n<ul>\n<li>Gi\u00e1 tr\u1ecb m\u1eb7c \u0111\u1ecbnh th\u01b0\u1eddng l\u00e0 60: Ngh\u0129a l\u00e0 khi RAM c\u00f2n tr\u1ed1ng kho\u1ea3ng 40%, h\u1ec7 th\u1ed1ng \u0111\u00e3 b\u1eaft \u0111\u1ea7u \u0111\u1ea9y d\u1eef li\u1ec7u sang swap.<\/li>\n<li>Gi\u00e1 tr\u1ecb 0: Ch\u1ec9 s\u1eed d\u1ee5ng swap khi RAM v\u1eadt l\u00fd c\u1ea1n ki\u1ec7t.<\/li>\n<li>Gi\u00e1 tr\u1ecb 100: S\u1eed d\u1ee5ng swap r\u1ea5t h\u0103ng h\u00e1i.<\/li>\n<\/ul>\n<p>\u0110\u1ed1i v\u1edbi VPS hi\u1ec7n \u0111\u1ea1i, \u0111\u1eb7c bi\u1ec7t l\u00e0 VPS d\u00f9ng \u1ed5 c\u1ee9ng SSD\/NVMe, ch\u00fang ta mu\u1ed1n h\u1ec7 th\u1ed1ng \u01b0u ti\u00ean d\u00f9ng RAM v\u1eadt l\u00fd. \u0110\u1eb7t <code>swappiness<\/code> \u1edf m\u1ee9c th\u1ea5p (v\u00ed d\u1ee5: 10) l\u00e0 m\u1ed9t l\u1ef1a ch\u1ecdn t\u1ed1i \u01b0u.<\/p>\n<ol>\n<li>Ki\u1ec3m tra gi\u00e1 tr\u1ecb <code>swappiness<\/code> hi\u1ec7n t\u1ea1i: <code>cat \/proc\/sys\/vm\/swappiness<\/code><\/li>\n<li>Thay \u0111\u1ed5i t\u1ea1m th\u1eddi (\u0111\u1ec3 ki\u1ec3m tra): <code>sudo sysctl vm.swappiness=10<\/code><\/li>\n<li>Thay \u0111\u1ed5i v\u0129nh vi\u1ec5n: M\u1edf file <code>\/etc\/sysctl.conf<\/code> (ho\u1eb7c t\u1ea1o file m\u1edbi trong <code>\/etc\/sysctl.d\/<\/code>) v\u00e0 th\u00eam d\u00f2ng sau: <code>vm.swappiness = 10<\/code><\/li>\n<\/ol>\n<h3><span class=\"ez-toc-section\" id=\"Su-dung-cron-de-tu-dong-don-rac-va-log-file\"><\/span>S\u1eed d\u1ee5ng <code>cron<\/code> \u0111\u1ec3 t\u1ef1 \u0111\u1ed9ng d\u1ecdn r\u00e1c v\u00e0 log file<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>C\u00e1c file log trong th\u01b0 m\u1ee5c <code>\/var\/log<\/code> c\u00f3 th\u1ec3 ph\u00ecnh to r\u1ea5t nhanh, chi\u1ebfm d\u1ee5ng kh\u00f4ng gian \u1ed5 c\u1ee9ng. T\u01b0\u01a1ng t\u1ef1, b\u1ed9 \u0111\u1ec7m (cache) c\u1ee7a c\u00e1c tr\u00ecnh qu\u1ea3n l\u00fd g\u00f3i (nh\u01b0 <code>apt<\/code>) c\u0169ng c\u1ea7n \u0111\u01b0\u1ee3c d\u1ecdn d\u1eb9p.<\/p>\n<p>B\u1ea1n c\u00f3 th\u1ec3 d\u00f9ng <code>cron<\/code> (tr\u00ecnh l\u1eadp l\u1ecbch c\u1ee7a Linux) \u0111\u1ec3 t\u1ef1 \u0111\u1ed9ng h\u00f3a c\u00e1c t\u00e1c v\u1ee5 n\u00e0y.<\/p>\n<ol>\n<li>M\u1edf crontab \u0111\u1ec3 ch\u1ec9nh s\u1eeda: <code>crontab -e<\/code><\/li>\n<li>Th\u00eam c\u00e1c d\u00f2ng sau \u0111\u1ec3 t\u1ef1 \u0111\u1ed9ng d\u1ecdn d\u1eb9p v\u00e0o 2 gi\u1edd s\u00e1ng m\u1ed7i ng\u00e0y: <code># D\u1ecdn cache c\u1ee7a apt (Debian\/Ubuntu)<\/code> <code>0 2 * * * \/usr\/bin\/apt-get clean<\/code><code># X\u00f3a c\u00e1c file log c\u0169 \u0111\u00e3 n\u00e9n<\/code> <code>0 2 * * * find \/var\/log -type f -name \"*.gz\" -delete<\/code><\/li>\n<\/ol>\n<p>Ngo\u00e0i ra, h\u00e3y \u0111\u1ea3m b\u1ea3o <code>logrotate<\/code> \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t v\u00e0 c\u1ea5u h\u00ecnh \u0111\u00fang. <code>logrotate<\/code> s\u1ebd t\u1ef1 \u0111\u1ed9ng xoay v\u00f2ng (rotate), n\u00e9n, v\u00e0 x\u00f3a c\u00e1c file log c\u0169, ng\u0103n ch\u00fang chi\u1ebfm qu\u00e1 nhi\u1ec1u dung l\u01b0\u1ee3ng.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Toi-uu-hoa-he-thong-luu-tru-Disk-IO\"><\/span>T\u1ed1i \u01b0u h\u00f3a h\u1ec7 th\u1ed1ng l\u01b0u tr\u1eef (Disk &amp; I\/O)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>T\u1ed1c \u0111\u1ed9 \u0111\u1ecdc\/ghi c\u1ee7a \u1ed5 c\u1ee9ng (I\/O) l\u00e0 m\u1ed9t trong nh\u1eefng y\u1ebfu t\u1ed1 \u1ea3nh h\u01b0\u1edfng l\u1edbn nh\u1ea5t \u0111\u1ebfn hi\u1ec7u su\u1ea5t chung, \u0111\u1eb7c bi\u1ec7t l\u00e0 v\u1edbi website c\u00f3 c\u01a1 s\u1edf d\u1eef li\u1ec7u l\u1edbn.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-35291\" src=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Toi-uu-hoa-he-thong-luu-tru-VPS.jpg\" alt=\"T\u1ed1i \u01b0u h\u00f3a h\u1ec7 th\u1ed1ng l\u01b0u tr\u1eef VPS\" width=\"600\" height=\"600\" title=\"\" srcset=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Toi-uu-hoa-he-thong-luu-tru-VPS.jpg 600w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Toi-uu-hoa-he-thong-luu-tru-VPS-300x300.jpg 300w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Toi-uu-hoa-he-thong-luu-tru-VPS-150x150.jpg 150w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Chon-filesystem-phu-hop-ext4-xfs-btrfs\"><\/span>Ch\u1ecdn filesystem ph\u00f9 h\u1ee3p (ext4, xfs, btrfs)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Filesystem (h\u1ec7 th\u1ed1ng t\u1ec7p tin) l\u00e0 c\u00e1ch h\u1ec7 \u0111i\u1ec1u h\u00e0nh t\u1ed5 ch\u1ee9c d\u1eef li\u1ec7u tr\u00ean \u1ed5c\u1ee9ng.<\/p>\n<ul>\n<li><code><strong>ext4<\/strong><\/code>: L\u00e0 l\u1ef1a ch\u1ecdn m\u1eb7c \u0111\u1ecbnh v\u00e0 ph\u1ed5 bi\u1ebfn nh\u1ea5t. R\u1ea5t \u1ed5n \u0111\u1ecbnh, tin c\u1eady, v\u00e0 c\u00f3 hi\u1ec7u su\u1ea5t t\u1ed1t cho h\u1ea7u h\u1ebft c\u00e1c t\u00e1c v\u1ee5 th\u00f4ng th\u01b0\u1eddng (web server, app server).<\/li>\n<li><code><strong>xfs<\/strong><\/code>: \u0110\u01b0\u1ee3c bi\u1ebft \u0111\u1ebfn v\u1edbi kh\u1ea3 n\u0103ng x\u1eed l\u00fd c\u00e1c t\u1ec7p tin r\u1ea5t l\u1edbn (terabyte) v\u00e0 hi\u1ec7u su\u1ea5t I\/O song song cao. Th\u01b0\u1eddng \u0111\u01b0\u1ee3c d\u00f9ng cho c\u00e1c m\u00e1y ch\u1ee7 l\u01b0u tr\u1eef file l\u1edbn ho\u1eb7c database hi\u1ec7u su\u1ea5t cao.<\/li>\n<li><code><strong>btrfs<\/strong><\/code>: L\u00e0 filesystem hi\u1ec7n \u0111\u1ea1i v\u1edbi nhi\u1ec1u t\u00ednh n\u0103ng ti\u00ean ti\u1ebfn nh\u01b0 snapshot (ch\u1ee5p \u1ea3nh nhanh h\u1ec7 th\u1ed1ng), n\u00e9n d\u1eef li\u1ec7u t\u00edch h\u1ee3p.<\/li>\n<\/ul>\n<p>\u0110\u1ed1i v\u1edbi h\u1ea7u h\u1ebft ng\u01b0\u1eddi d\u00f9ng VPS, <code>ext4<\/code> l\u00e0 l\u1ef1a ch\u1ecdn an to\u00e0n v\u00e0 hi\u1ec7u qu\u1ea3. Vi\u1ec7c l\u1ef1a ch\u1ecdn n\u00e0y th\u01b0\u1eddng \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n khi b\u1ea1n c\u00e0i \u0111\u1eb7t h\u1ec7 \u0111i\u1ec1u h\u00e0nh.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Kich-hoat-noatime-deadline-scheduler-de-giam-IO\"><\/span>K\u00edch ho\u1ea1t <code>noatime<\/code>, <code>deadline scheduler<\/code> \u0111\u1ec3 gi\u1ea3m I\/O<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>1. T\u1eaft <\/strong><code><strong>atime<\/strong><\/code><strong> (Access Time)<\/strong> M\u1ed7i khi m\u1ed9t file \u0111\u01b0\u1ee3c <i>\u0111\u1ecdc<\/i> (th\u1eadm ch\u00ed ch\u1ec9 l\u00e0 xem), Linux s\u1ebd <i>ghi<\/i> l\u1ea1i m\u1ed9t d\u1ea5u th\u1eddi gian (access time &#8211; th\u1eddi gian truy c\u1eadp) v\u00e0o metadata c\u1ee7a file \u0111\u00f3. V\u1edbi m\u1ed9t web server \u0111\u1ecdc h\u00e0ng ng\u00e0n file m\u1ed7i ph\u00fat, vi\u1ec7c ghi li\u00ean t\u1ee5c n\u00e0y t\u1ea1o ra m\u1ed9t l\u01b0\u1ee3ng I\/O kh\u00f4ng c\u1ea7n thi\u1ebft.<\/p>\n<p>Ch\u00fang ta c\u00f3 th\u1ec3 t\u1eaft t\u00ednh n\u0103ng n\u00e0y b\u1eb1ng c\u00e1ch th\u00eam t\u00f9y ch\u1ecdn <code>noatime<\/code> v\u00e0o file <code>\/etc\/fstab<\/code>.<\/p>\n<ol>\n<li>M\u1edf file <code>\/etc\/fstab<\/code>: <code>sudo nano \/etc\/fstab<\/code><\/li>\n<li>T\u00ecm d\u00f2ng c\u1ee7a ph\u00e2n v\u00f9ng ch\u00ednh (th\u01b0\u1eddng l\u00e0 <code>\/<\/code>) v\u00e0 th\u00eam <code>noatime<\/code> v\u00e0o sau <code>defaults<\/code>:\n<ul>\n<li><i>Tr\u01b0\u1edbc:<\/i> <code>UUID=... \/ ext4 defaults 0 1<\/code><\/li>\n<li><i>Sau:<\/i> <code>UUID=... \/ ext4 defaults,noatime 0 1<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>Sau khi reboot, h\u1ec7 th\u1ed1ng s\u1ebd ng\u1eebng ghi <code>atime<\/code>, gi\u00fap gi\u1ea3m \u0111\u00e1ng k\u1ec3 ho\u1ea1t \u0111\u1ed9ng ghi l\u00ean \u1ed5 c\u1ee9ng.<\/p>\n<p><strong>2. Ch\u1ecdn I\/O Scheduler<\/strong> I\/O Scheduler l\u00e0 c\u01a1 ch\u1ebf quy\u1ebft \u0111\u1ecbnh th\u1ee9 t\u1ef1 c\u00e1c y\u00eau c\u1ea7u \u0111\u1ecdc\/ghi \u0111\u01b0\u1ee3c g\u1eedi \u0111\u1ebfn \u1ed5 c\u1ee9ng.<\/p>\n<ul>\n<li>V\u1edbi \u1ed5 c\u1ee9ng c\u01a1 (HDD), <code>cfq<\/code> (Completely Fair Queuing) l\u00e0 m\u1eb7c \u0111\u1ecbnh.<\/li>\n<li>V\u1edbi \u1ed5 c\u1ee9ng SSD\/NVMe (h\u1ea7u h\u1ebft VPS hi\u1ec7n \u0111\u1ea1i s\u1eed d\u1ee5ng), <code>deadline<\/code> ho\u1eb7c <code>noop<\/code> th\u01b0\u1eddng cho hi\u1ec7u su\u1ea5t t\u1ed1t h\u01a1n v\u00ec ch\u00fang \u0111\u01a1n gi\u1ea3n v\u00e0 nhanh h\u01a1n, ph\u00f9 h\u1ee3p v\u1edbi t\u1ed1c \u0111\u1ed9 c\u1ee7a SSD. <code>deadline<\/code> \u01b0u ti\u00ean c\u00e1c y\u00eau c\u1ea7u \u0111\u1ecdc, gi\u00fap gi\u1ea3m \u0111\u1ed9 tr\u1ec5 cho \u1ee9ng d\u1ee5ng.<\/li>\n<\/ul>\n<p>B\u1ea1n c\u00f3 th\u1ec3 ki\u1ec3m tra v\u00e0 thay \u0111\u1ed5i scheduler cho \u1ed5 c\u1ee9ng c\u1ee7a m\u00ecnh (v\u00ed d\u1ee5: <code>sda<\/code>).<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Don-dep-file-log-cache-va-su-dung-tmpfs\"><\/span>D\u1ecdn d\u1eb9p file log, cache v\u00e0 s\u1eed d\u1ee5ng <code>tmpfs<\/code><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><code>tmpfs<\/code> l\u00e0 m\u1ed9t h\u1ec7 th\u1ed1ng t\u1ec7p tin \u0111\u1eb7c bi\u1ec7t, \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef ho\u00e0n to\u00e0n trong RAM. M\u1ecdi thao t\u00e1c \u0111\u1ecdc\/ghi tr\u00ean <code>tmpfs<\/code> \u0111\u1ec1u c\u1ef1c k\u1ef3 nhanh v\u00ec kh\u00f4ng c\u1ea7n truy c\u1eadp \u1ed5 c\u1ee9ng.<\/p>\n<p>C\u00e1c th\u01b0 m\u1ee5c nh\u01b0 <code>\/tmp<\/code> (ch\u1ee9a file t\u1ea1m) l\u00e0 \u1ee9ng c\u1eed vi\u00ean l\u00fd t\u01b0\u1edfng \u0111\u1ec3 chuy\u1ec3n sang <code>tmpfs<\/code>. D\u1eef li\u1ec7u trong <code>tmpfs<\/code> s\u1ebd b\u1ecb x\u00f3a khi VPS reboot, \u0111i\u1ec1u n\u00e0y ho\u00e0n to\u00e0n ph\u00f9 h\u1ee3p v\u1edbi t\u00ednh ch\u1ea5t &#8220;t\u1ea1m th\u1eddi&#8221; c\u1ee7a c\u00e1c file trong <code>\/tmp<\/code>.<\/p>\n<p>\u0110\u1ec3 mount <code>\/tmp<\/code> b\u1eb1ng <code>tmpfs<\/code>, th\u00eam d\u00f2ng sau v\u00e0o <code>\/etc\/fstab<\/code>: <code>tmpfs \/tmp tmpfs defaults,noatime,mode=1777 0 0<\/code><\/p>\n<p>\u0110i\u1ec1u n\u00e0y c\u0169ng gi\u00fap gi\u1ea3m hao m\u00f2n (wear) cho \u1ed5 c\u1ee9ng SSD\/NVMe v\u1ec1 l\u00e2u d\u00e0i.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Toi-uu-hoa-mang-va-ket-noi\"><\/span>T\u1ed1i \u01b0u h\u00f3a m\u1ea1ng v\u00e0 k\u1ebft n\u1ed1i<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Sau khi t\u1ed1i \u01b0u &#8220;b\u00ean trong&#8221; VPS, ch\u00fang ta c\u1ea7n t\u1ed1i \u01b0u &#8220;\u0111\u01b0\u1eddng \u0111i&#8221; &#8211; t\u1ee9c l\u00e0 k\u1ebft n\u1ed1i m\u1ea1ng. \u0110i\u1ec1u n\u00e0y gi\u00fap gi\u1ea3m \u0111\u1ed9 tr\u1ec5 (latency) v\u00e0 t\u0103ng t\u1ed1c \u0111\u1ed9 truy\u1ec1n t\u1ea3i d\u1eef li\u1ec7u.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-35294\" src=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Toi-uu-mang-cho-VPS.jpg\" alt=\"T\u1ed1i \u01b0u m\u1ea1ng cho VPS\" width=\"600\" height=\"600\" title=\"\" srcset=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Toi-uu-mang-cho-VPS.jpg 600w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Toi-uu-mang-cho-VPS-300x300.jpg 300w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Toi-uu-mang-cho-VPS-150x150.jpg 150w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Cau-hinh-sysctlconf-de-toi-uu-TCPIP-stack\"><\/span>C\u1ea5u h\u00ecnh <code>sysctl.conf<\/code> \u0111\u1ec3 t\u1ed1i \u01b0u TCP\/IP stack<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>File <code>\/etc\/sysctl.conf<\/code> cho ph\u00e9p b\u1ea1n tinh ch\u1ec9nh s\u00e2u v\u00e0o &#8220;tr\u00e1i tim&#8221; c\u1ee7a kernel Linux, bao g\u1ed3m c\u1ea3 c\u00e1ch x\u1eed l\u00fd c\u00e1c k\u1ebft n\u1ed1i m\u1ea1ng (TCP\/IP stack). B\u1ea1n c\u00f3 th\u1ec3 th\u00eam c\u00e1c t\u00f9y ch\u1ecdn sau v\u00e0o <code>\/etc\/sysctl.conf<\/code> \u0111\u1ec3 c\u1ea3i thi\u1ec7n hi\u1ec7u su\u1ea5t m\u1ea1ng cho m\u00e1y ch\u1ee7 web b\u1eadn r\u1ed9n:<\/p>\n<p><code># T\u0103ng k\u00edch th\u01b0\u1edbc h\u00e0ng \u0111\u1ee3i k\u1ebft n\u1ed1i t\u1ed1i \u0111a<\/code> <code>net.core.somaxconn = 65535<\/code><\/p>\n<p><code># T\u0103ng b\u1ed9 \u0111\u1ec7m TCP (t\u1ed1i \u0111a)<\/code> <code>net.core.rmem_max = 16777216<\/code> <code>net.core.wmem_max = 16777216<\/code> <code>net.ipv4.tcp_rmem = 4096 87380 16777216<\/code> <code>net.ipv4.tcp_wmem = 4096 65536 16777216<\/code><\/p>\n<p><code># Cho ph\u00e9p t\u00e1i s\u1eed d\u1ee5ng socket \u1edf tr\u1ea1ng th\u00e1i TIME-WAIT<\/code> <code>net.ipv4.tcp_tw_reuse = 1<\/code><\/p>\n<p><code># Gi\u1ea3m th\u1eddi gian fin-timeout<\/code> <code>net.ipv4.tcp_fin_timeout = 15<\/code><\/p>\n<p><code># B\u1eadt thu\u1eadt to\u00e1n ch\u1ed1ng t\u1eafc ngh\u1ebdn BBR (r\u1ea5t hi\u1ec7u qu\u1ea3)<\/code> <code>net.core.default_qdisc = fq<\/code> <code>net.ipv4.tcp_congestion_control = bbr<\/code><\/p>\n<p>Sau khi l\u01b0u file, ch\u1ea1y l\u1ec7nh <code>sudo sysctl -p<\/code> \u0111\u1ec3 \u00e1p d\u1ee5ng thay \u0111\u1ed5i. Thu\u1eadt to\u00e1n BBR c\u1ee7a Google \u0111\u1eb7c bi\u1ec7t hi\u1ec7u qu\u1ea3 trong vi\u1ec7c c\u1ea3i thi\u1ec7n th\u00f4ng l\u01b0\u1ee3ng v\u00e0 gi\u1ea3m \u0111\u1ed9 tr\u1ec5.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Bat-Gzip-KeepAlive-va-HTTP2-hoac-HTTP3-neu-dung-web-server\"><\/span>B\u1eadt Gzip, KeepAlive, v\u00e0 HTTP\/2 (ho\u1eb7c HTTP\/3) n\u1ebfu d\u00f9ng web server<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0110\u00e2y l\u00e0 c\u00e1c t\u1ed1i \u01b0u \u1edf t\u1ea7ng \u1ee9ng d\u1ee5ng (web server nh\u01b0 Nginx ho\u1eb7c Apache).<\/p>\n<ul>\n<li><strong>KeepAlive<\/strong>: Cho ph\u00e9p tr\u00ecnh duy\u1ec7t t\u00e1i s\u1eed d\u1ee5ng c\u00f9ng m\u1ed9t k\u1ebft n\u1ed1i TCP \u0111\u1ec3 t\u1ea3i nhi\u1ec1u file (HTML, CSS, JS, h\u00ecnh \u1ea3nh) thay v\u00ec ph\u1ea3i m\u1edf k\u1ebft n\u1ed1i m\u1edbi cho m\u1ed7i file.<\/li>\n<li><strong>Gzip\/Brotli<\/strong>: N\u00e9n c\u00e1c file v\u0103n b\u1ea3n (HTML, CSS, JS) tr\u01b0\u1edbc khi g\u1eedi \u0111i, gi\u1ea3m \u0111\u00e1ng k\u1ec3 dung l\u01b0\u1ee3ng truy\u1ec1n t\u1ea3i.<\/li>\n<li><strong>HTTP\/2 (ho\u1eb7c H3)<\/strong>: Giao th\u1ee9c web hi\u1ec7n \u0111\u1ea1i, cho ph\u00e9p t\u1ea3i nhi\u1ec1u file song song tr\u00ean c\u00f9ng m\u1ed9t k\u1ebft n\u1ed1i (multiplexing), lo\u1ea1i b\u1ecf v\u1ea5n \u0111\u1ec1 &#8220;head-of-line blocking&#8221; c\u1ee7a HTTP\/1.1.<\/li>\n<\/ul>\n<p>T\u1ea5t c\u1ea3 c\u00e1c t\u00ednh n\u0103ng n\u00e0y c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c k\u00edch ho\u1ea1t d\u1ec5 d\u00e0ng trong file c\u1ea5u h\u00ecnh Nginx ho\u1eb7c Apache, mang l\u1ea1i s\u1ef1 c\u1ea3i thi\u1ec7n t\u1ed1c \u0111\u1ed9 r\u00f5 r\u1ec7t cho website.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Kiem-tra-bang-thong-va-do-tre-bang-iperf-ping-traceroute\"><\/span>Ki\u1ec3m tra b\u0103ng th\u00f4ng v\u00e0 \u0111\u1ed9 tr\u1ec5 b\u1eb1ng <code>iperf<\/code>, <code>ping<\/code>, <code>traceroute<\/code><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><code>ping<\/code>: L\u1ec7nh \u0111\u01a1n gi\u1ea3n nh\u1ea5t \u0111\u1ec3 ki\u1ec3m tra \u0111\u1ed9 tr\u1ec5 (latency) t\u1eeb m\u00e1y c\u1ee7a b\u1ea1n \u0111\u1ebfn VPS. <code>ping vps-ip-cua-ban<\/code>.<\/li>\n<li><code>traceroute<\/code> (ho\u1eb7c <code>mtr<\/code>): Cho b\u1ea1n th\u1ea5y \u0111\u01b0\u1eddng \u0111i c\u1ee7a g\u00f3i tin t\u1eeb m\u00e1y b\u1ea1n \u0111\u1ebfn VPS, qua bao nhi\u00eau &#8220;ch\u1eb7ng&#8221; (hops). Gi\u00fap ph\u00e1t hi\u1ec7n c\u00e1c v\u1ea5n \u0111\u1ec1 v\u1ec1 \u0111\u1ecbnh tuy\u1ebfn m\u1ea1ng.<\/li>\n<li><code>iperf3<\/code>: C\u00f4ng c\u1ee5 chuy\u00ean d\u1ee5ng \u0111\u1ec3 \u0111o b\u0103ng th\u00f4ng <i>th\u1ef1c t\u1ebf<\/i> gi\u1eefa hai m\u00e1y ch\u1ee7. B\u1ea1n c\u1ea7n c\u00e0i <code>iperf3<\/code> tr\u00ean VPS (ch\u1ea1y \u1edf ch\u1ebf \u0111\u1ed9 server: <code>iperf3 -s<\/code>) v\u00e0 tr\u00ean m\u00e1y c\u1ee7a b\u1ea1n (ch\u1ea1y \u1edf ch\u1ebf \u0111\u1ed9 client: <code>iperf3 -c vps-ip-cua-ban<\/code>).<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Tang-cuong-bao-mat-khi-toi-uu-hoa-VPS\"><\/span>T\u0103ng c\u01b0\u1eddng b\u1ea3o m\u1eadt khi t\u1ed1i \u01b0u h\u00f3a VPS<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>M\u1ed9t VPS nhanh nh\u01b0ng kh\u00f4ng an to\u00e0n l\u00e0 m\u1ed9t th\u1ea3m h\u1ecda. T\u1ed1i \u01b0u h\u00f3a hi\u1ec7u su\u1ea5t ph\u1ea3i lu\u00f4n song h\u00e0nh v\u1edbi vi\u1ec7c t\u0103ng c\u01b0\u1eddng b\u1ea3o m\u1eadt (hardening).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-35289\" src=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Tang-cuong-bao-mat-VPS.jpg\" alt=\"T\u0103ng c\u01b0\u1eddng b\u1ea3o m\u1eadt VPS\" width=\"600\" height=\"600\" title=\"\" srcset=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Tang-cuong-bao-mat-VPS.jpg 600w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Tang-cuong-bao-mat-VPS-300x300.jpg 300w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Tang-cuong-bao-mat-VPS-150x150.jpg 150w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Cau-hinh-tuong-lua-ufw-hoac-firewalld\"><\/span>C\u1ea5u h\u00ecnh t\u01b0\u1eddng l\u1eeda <code>ufw<\/code> ho\u1eb7c <code>firewalld<\/code><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>T\u01b0\u1eddng l\u1eeda l\u00e0 tuy\u1ebfn ph\u00f2ng th\u1ee7 \u0111\u1ea7u ti\u00ean, ki\u1ec3m so\u00e1t c\u00e1c k\u1ebft n\u1ed1i ra v\u00e0o VPS c\u1ee7a b\u1ea1n. Nguy\u00ean t\u1eafc l\u00e0 &#8220;ch\u1eb7n t\u1ea5t c\u1ea3, ch\u1ec9 m\u1edf nh\u1eefng g\u00ec c\u1ea7n thi\u1ebft&#8221;.<\/p>\n<ul>\n<li><code>ufw<\/code> (Uncomplicated Firewall) r\u1ea5t ph\u1ed5 bi\u1ebfn tr\u00ean Ubuntu\/Debian.<\/li>\n<li><code>firewalld<\/code> l\u00e0 m\u1eb7c \u0111\u1ecbnh tr\u00ean CentOS\/RHEL.<\/li>\n<\/ul>\n<p>V\u00ed d\u1ee5 v\u1edbi <code>ufw<\/code>:<\/p>\n<ol>\n<li>Cho ph\u00e9p c\u00e1c d\u1ecbch v\u1ee5 c\u1ea7n thi\u1ebft (SSH, HTTP, HTTPS): <code>sudo ufw allow ssh<\/code> (Ho\u1eb7c <code>sudo ufw allow 22\/tcp<\/code>) <code>sudo ufw allow http<\/code> (Ho\u1eb7c <code>sudo ufw allow 80\/tcp<\/code>) <code>sudo ufw allow https<\/code> (Ho\u1eb7c <code>sudo ufw allow 443\/tcp<\/code>)<\/li>\n<li>K\u00edch ho\u1ea1t t\u01b0\u1eddng l\u1eeda: <code>sudo ufw enable<\/code><\/li>\n<\/ol>\n<h3><span class=\"ez-toc-section\" id=\"Cai-dat-Fail2Ban-de-chan-brute-force\"><\/span>C\u00e0i \u0111\u1eb7t <code>Fail2Ban<\/code> \u0111\u1ec3 ch\u1eb7n brute-force<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>T\u1ea5n c\u00f4ng &#8220;brute-force&#8221; l\u00e0 h\u00ecnh th\u1ee9c c\u00e1c bot t\u1ef1 \u0111\u1ed9ng th\u1eed h\u00e0ng ng\u00e0n m\u1eadt kh\u1ea9u m\u1ed7i ph\u00fat \u0111\u1ec3 \u0111\u0103ng nh\u1eadp v\u00e0o SSH ho\u1eb7c trang qu\u1ea3n tr\u1ecb (nh\u01b0 <code>wp-login.php<\/code>).<\/p>\n<p><code>Fail2Ban<\/code> l\u00e0 m\u1ed9t c\u00f4ng c\u1ee5 tuy\u1ec7t v\u1eddi gi\u00fap t\u1ef1 \u0111\u1ed9ng h\u00f3a vi\u1ec7c ph\u00f2ng th\u1ee7. N\u00f3 s\u1ebd qu\u00e9t file log c\u1ee7a h\u1ec7 th\u1ed1ng (v\u00ed d\u1ee5: log SSH, log Nginx) \u0111\u1ec3 t\u00ecm c\u00e1c l\u1ea7n \u0111\u0103ng nh\u1eadp th\u1ea5t b\u1ea1i. N\u1ebfu m\u1ed9t \u0111\u1ecba ch\u1ec9 IP th\u1ea5t b\u1ea1i qu\u00e1 nhi\u1ec1u l\u1ea7n, <code>Fail2Ban<\/code> s\u1ebd t\u1ef1 \u0111\u1ed9ng d\u00f9ng t\u01b0\u1eddng l\u1eeda (<code>ufw<\/code>) \u0111\u1ec3 &#8220;c\u1ea5m&#8221; (ban) IP \u0111\u00f3 trong m\u1ed9t kho\u1ea3ng th\u1eddi gian.<\/p>\n<p>C\u00e0i \u0111\u1eb7t v\u00e0 k\u00edch ho\u1ea1t <code>Fail2Ban<\/code> l\u00e0 b\u01b0\u1edbc b\u1ea3o m\u1eadt g\u1ea7n nh\u01b0 b\u1eaft bu\u1ed9c cho m\u1ecdi VPS.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Gioi-han-quyen-truy-cap-SSH-va-bat-xac-thuc-key\"><\/span>Gi\u1edbi h\u1ea1n quy\u1ec1n truy c\u1eadp SSH v\u00e0 b\u1eadt x\u00e1c th\u1ef1c key<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0110\u00e2y l\u00e0 b\u01b0\u1edbc <i>quan tr\u1ecdng nh\u1ea5t<\/i> \u0111\u1ec3 b\u1ea3o v\u1ec7 VPS c\u1ee7a b\u1ea1n.<\/p>\n<ol>\n<li><strong>T\u1eaft \u0111\u0103ng nh\u1eadp c\u1ee7a <\/strong><code><strong>root<\/strong><\/code>: Kh\u00f4ng bao gi\u1edd \u0111\u0103ng nh\u1eadp tr\u1ef1c ti\u1ebfp b\u1eb1ng t\u00e0i kho\u1ea3n <code>root<\/code>. Thay v\u00e0o \u0111\u00f3, t\u1ea1o m\u1ed9t t\u00e0i kho\u1ea3n ng\u01b0\u1eddi d\u00f9ng th\u01b0\u1eddng v\u00e0 c\u1ea5p quy\u1ec1n <code>sudo<\/code>.\n<ul>\n<li>M\u1edf file <code>\/etc\/ssh\/sshd_config<\/code><\/li>\n<li>S\u1eeda d\u00f2ng: <code>PermitRootLogin no<\/code><\/li>\n<\/ul>\n<\/li>\n<li><strong>(T\u00f9y ch\u1ecdn) \u0110\u1ed5i c\u1ed5ng SSH<\/strong>: Bot th\u01b0\u1eddng qu\u00e9t c\u1ed5ng 22. B\u1ea1n c\u00f3 th\u1ec3 \u0111\u1ed5i sang m\u1ed9t c\u1ed5ng kh\u00e1c (v\u00ed d\u1ee5: 2222).\n<ul>\n<li>Trong <code>\/etc\/ssh\/sshd_config<\/code>, s\u1eeda: <code>Port 2222<\/code><\/li>\n<li>(Nh\u1edb <code>allow<\/code> c\u1ed5ng m\u1edbi n\u00e0y trong <code>ufw<\/code> tr\u01b0\u1edbc khi kh\u1edfi \u0111\u1ed9ng l\u1ea1i SSH).<\/li>\n<\/ul>\n<\/li>\n<li><strong>T\u1eaft x\u00e1c th\u1ef1c b\u1eb1ng m\u1eadt kh\u1ea9u, ch\u1ec9 d\u00f9ng SSH Key<\/strong>: \u0110\u00e2y l\u00e0 ph\u01b0\u01a1ng ph\u00e1p an to\u00e0n nh\u1ea5t.\n<ul>\n<li>B\u1ea1n t\u1ea1o m\u1ed9t c\u1eb7p &#8220;kh\u00f3a&#8221; (public key v\u00e0 private key) tr\u00ean m\u00e1y t\u00ednh c\u00e1 nh\u00e2n.<\/li>\n<li>B\u1ea1n t\u1ea3i public key l\u00ean VPS.<\/li>\n<li>Sau \u0111\u00f3, b\u1ea1n t\u1eaft t\u00ednh n\u0103ng \u0111\u0103ng nh\u1eadp b\u1eb1ng m\u1eadt kh\u1ea9u.<\/li>\n<li>Trong <code>\/etc\/ssh\/sshd_config<\/code>, s\u1eeda: <code>PasswordAuthentication no<\/code><\/li>\n<li>Gi\u1edd \u0111\u00e2y, kh\u00f4ng ai c\u00f3 th\u1ec3 \u0111\u0103ng nh\u1eadp v\u00e0o VPS n\u1ebfu kh\u00f4ng c\u00f3 file private key (n\u1eb1m tr\u00ean m\u00e1y b\u1ea1n), khi\u1ebfn t\u1ea5n c\u00f4ng brute-force tr\u1edf n\u00ean v\u00f4 d\u1ee5ng.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h2><span class=\"ez-toc-section\" id=\"Toi-uu-hoa-dich-vu-web-va-database-LAMPLEMP-Stack\"><\/span>T\u1ed1i \u01b0u h\u00f3a d\u1ecbch v\u1ee5 web v\u00e0 database (LAMP\/LEMP Stack)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Sau khi t\u1ed1i \u01b0u h\u1ec7 \u0111i\u1ec1u h\u00e0nh, b\u01b0\u1edbc ti\u1ebfp theo l\u00e0 t\u1ed1i \u01b0u c\u00e1c \u1ee9ng d\u1ee5ng \u0111ang ch\u1ea1y tr\u00ean \u0111\u00f3, ph\u1ed5 bi\u1ebfn nh\u1ea5t l\u00e0 web server (Nginx, Apache) v\u00e0 database (MySQL, MariaDB).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-35290\" src=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Toi-uu-database-cho-VPS.jpg\" alt=\"T\u1ed1i \u01b0u database cho VPS\" width=\"600\" height=\"600\" title=\"\" srcset=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Toi-uu-database-cho-VPS.jpg 600w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Toi-uu-database-cho-VPS-300x300.jpg 300w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Toi-uu-database-cho-VPS-150x150.jpg 150w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Toi-uu-NginxApache-bat-cache-gioi-han-worker-processes\"><\/span>T\u1ed1i \u01b0u Nginx\/Apache: b\u1eadt cache, gi\u1edbi h\u1ea1n <code>worker_processes<\/code><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><strong>Nginx<\/strong>:\n<ul>\n<li><code>worker_processes<\/code>: \u0110\u1eb7t b\u1eb1ng s\u1ed1 l\u01b0\u1ee3ng nh\u00e2n (cores) CPU c\u1ee7a VPS.<\/li>\n<li><code>worker_connections<\/code>: T\u0103ng gi\u00e1 tr\u1ecb n\u00e0y (v\u00ed d\u1ee5: <code>2048<\/code> ho\u1eb7c <code>4096<\/code>) \u0111\u1ec3 cho ph\u00e9p Nginx x\u1eed l\u00fd nhi\u1ec1u k\u1ebft n\u1ed1i \u0111\u1ed3ng th\u1eddi.<\/li>\n<li><code>Static File Caching<\/code>: C\u1ea5u h\u00ecnh Nginx \u0111\u1ec3 cache c\u00e1c file t\u0129nh (CSS, JS, h\u00ecnh \u1ea3nh) tr\u00ean tr\u00ecnh duy\u1ec7t ng\u01b0\u1eddi d\u00f9ng, gi\u1ea3m t\u1ea3i cho m\u00e1y ch\u1ee7.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Apache<\/strong>:\n<ul>\n<li>Chuy\u1ec3n MPM t\u1eeb <code>prefork<\/code> (c\u0169, t\u1ed1n RAM) sang <code>event<\/code> ho\u1eb7c <code>worker<\/code> (hi\u1ec7n \u0111\u1ea1i, x\u1eed l\u00fd \u0111\u1ed3ng th\u1eddi t\u1ed1t h\u01a1n).<\/li>\n<li>Tinh ch\u1ec9nh c\u00e1c gi\u00e1 tr\u1ecb <code>MaxClients<\/code>, <code>StartServers<\/code>&#8230; cho ph\u00f9 h\u1ee3p v\u1edbi l\u01b0\u1ee3ng RAM c\u1ee7a VPS.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Toi-uu-MySQLMariaDB-chinh-innodb-buffer-pool-size-query-cache\"><\/span>T\u1ed1i \u01b0u MySQL\/MariaDB: ch\u1ec9nh <code>innodb_buffer_pool_size<\/code>, <code>query_cache<\/code><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><code><strong>innodb_buffer_pool_size<\/strong><\/code>: \u0110\u00e2y l\u00e0 th\u00f4ng s\u1ed1 <i>quan tr\u1ecdng nh\u1ea5t<\/i> c\u1ee7a MySQL\/MariaDB. N\u00f3 quy \u0111\u1ecbnh l\u01b0\u1ee3ng RAM m\u00e0 database \u0111\u01b0\u1ee3c ph\u00e9p s\u1eed d\u1ee5ng \u0111\u1ec3 cache (l\u01b0u tr\u1eef) d\u1eef li\u1ec7u v\u00e0 ch\u1ec9 m\u1ee5c (indexes).\n<ul>\n<li>N\u1ebfu gi\u00e1 tr\u1ecb n\u00e0y qu\u00e1 nh\u1ecf, database s\u1ebd ph\u1ea3i \u0111\u1ecdc t\u1eeb \u1ed5 c\u1ee9ng li\u00ean t\u1ee5c (r\u1ea5t ch\u1eadm).<\/li>\n<li>N\u1ebfu gi\u00e1 tr\u1ecb n\u00e0y qu\u00e1 l\u1edbn, s\u1ebd kh\u00f4ng c\u00f2n RAM cho h\u1ec7 \u0111i\u1ec1u h\u00e0nh v\u00e0 c\u00e1c d\u1ecbch v\u1ee5 kh\u00e1c.<\/li>\n<li>Quy t\u1eafc chung: \u0110\u1eb7t kho\u1ea3ng 50-70% t\u1ed5ng RAM c\u1ee7a VPS <i>n\u1ebfu VPS ch\u1ec9 d\u00e0nh cho database<\/i>. N\u1ebfu VPS ch\u1ea1y c\u1ea3 web server v\u00e0 database, b\u1ea1n c\u1ea7n c\u00e2n \u0111\u1ed1i \u1edf m\u1ee9c th\u1ea5p h\u01a1n (v\u00ed d\u1ee5: 25-40% t\u1ed5ng RAM).<\/li>\n<\/ul>\n<\/li>\n<li><code><strong>query_cache_size<\/strong><\/code><strong> (L\u01b0u \u00fd quan tr\u1ecdng)<\/strong>:\n<ul>\n<li>Trong c\u00e1c phi\u00ean b\u1ea3n MySQL\/MariaDB c\u0169, <code>query_cache<\/code> \u0111\u01b0\u1ee3c d\u00f9ng \u0111\u1ec3 cache k\u1ebft qu\u1ea3 c\u1ee7a c\u00e1c c\u00e2u l\u1ec7nh <code>SELECT<\/code>.<\/li>\n<li>Tuy nhi\u00ean, trong c\u00e1c phi\u00ean b\u1ea3n hi\u1ec7n \u0111\u1ea1i, t\u00ednh n\u0103ng n\u00e0y \u0111\u00e3 b\u1ecb <i>lo\u1ea1i b\u1ecf<\/i> (deprecated) v\u00ec g\u00e2y ra nhi\u1ec1u v\u1ea5n \u0111\u1ec1 v\u1ec1 hi\u1ec7u su\u1ea5t v\u00e0 t\u1eafc ngh\u1ebdn.<\/li>\n<li><strong>Khuy\u1ebfn ngh\u1ecb<\/strong>: T\u1eaft ho\u00e0n to\u00e0n Query Cache. <code>query_cache_type = 0<\/code> v\u00e0 <code>query_cache_size = 0<\/code>. Thay v\u00e0o \u0111\u00f3, h\u00e3y t\u1ed1i \u01b0u c\u00e2u l\u1ec7nh SQL, s\u1eed d\u1ee5ng index, v\u00e0 d\u00f9ng c\u00e1c gi\u1ea3i ph\u00e1p cache t\u1ea7ng \u1ee9ng d\u1ee5ng.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Dung-Redis-hoac-Memcached-de-cache-du-lieu-Object-Cache\"><\/span>D\u00f9ng Redis ho\u1eb7c Memcached \u0111\u1ec3 cache d\u1eef li\u1ec7u (Object Cache)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0110\u1ec3 gi\u1ea3m t\u1ea3i cho database, thay v\u00ec b\u1eaft database ch\u1ea1y c\u00f9ng m\u1ed9t c\u00e2u l\u1ec7nh truy v\u1ea5n ph\u1ee9c t\u1ea1p l\u1eb7p \u0111i l\u1eb7p l\u1ea1i, ch\u00fang ta c\u00f3 th\u1ec3 l\u01b0u k\u1ebft qu\u1ea3 c\u1ee7a c\u00e2u l\u1ec7nh \u0111\u00f3 v\u00e0o RAM. <code>Redis<\/code> v\u00e0 <code>Memcached<\/code> l\u00e0 c\u00e1c h\u1ec7 th\u1ed1ng cache &#8220;in-memory&#8221; (trong RAM) t\u1ed1c \u0111\u1ed9 c\u1ef1c cao, chuy\u00ean l\u00e0m vi\u1ec7c n\u00e0y.<\/p>\n<p>\u0110\u1ed1i v\u1edbi c\u00e1c website WordPress, vi\u1ec7c c\u00e0i \u0111\u1eb7t <code>Redis<\/code> v\u00e0 s\u1eed d\u1ee5ng plugin &#8220;Redis Object Cache&#8221; s\u1ebd t\u0103ng t\u1ed1c \u0111\u1ed9 t\u1ea3i trang qu\u1ea3n tr\u1ecb v\u00e0 website l\u00ean \u0111\u00e1ng k\u1ec3.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Giam-sat-va-bao-tri-dinh-ky\"><\/span>Gi\u00e1m s\u00e1t v\u00e0 b\u1ea3o tr\u00ec \u0111\u1ecbnh k\u1ef3<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>T\u1ed1i \u01b0u h\u00f3a kh\u00f4ng ph\u1ea3i l\u00e0 c\u00f4ng vi\u1ec7c ch\u1ec9 l\u00e0m m\u1ed9t l\u1ea7n. B\u1ea1n c\u1ea7n m\u1ed9t quy tr\u00ecnh gi\u00e1m s\u00e1t v\u00e0 b\u1ea3o tr\u00ec th\u01b0\u1eddng xuy\u00ean \u0111\u1ec3 \u0111\u1ea3m b\u1ea3o VPS lu\u00f4n ho\u1ea1t \u0111\u1ed9ng \u1edf tr\u1ea1ng th\u00e1i t\u1ed1t nh\u1ea5t.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-35288\" src=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Giam-sat-VPS.jpg\" alt=\"Gi\u00e1m s\u00e1t VPS\" width=\"600\" height=\"600\" title=\"\" srcset=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Giam-sat-VPS.jpg 600w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Giam-sat-VPS-300x300.jpg 300w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2025\/10\/Giam-sat-VPS-150x150.jpg 150w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Theo-doi-log-va-canh-bao-bang-Netdata-Zabbix-Prometheus\"><\/span>Theo d\u00f5i log v\u00e0 c\u1ea3nh b\u00e1o b\u1eb1ng Netdata, Zabbix, Prometheus<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><code><strong>Netdata<\/strong><\/code>: L\u00e0 c\u00f4ng c\u1ee5 gi\u00e1m s\u00e1t th\u1eddi gian th\u1ef1c tuy\u1ec7t v\u1eddi, cung c\u1ea5p h\u00e0ng ng\u00e0n ch\u1ec9 s\u1ed1 qua m\u1ed9t giao di\u1ec7n web \u0111\u1eb9p m\u1eaft. C\u00e0i \u0111\u1eb7t r\u1ea5t \u0111\u01a1n gi\u1ea3n v\u00e0 cho b\u1ea1n c\u00e1i nh\u00ecn s\u00e2u s\u1eafc v\u1ec1 m\u1ecdi th\u1ee9 \u0111ang di\u1ec5n ra tr\u00ean VPS.<\/li>\n<li><code><strong>Zabbix<\/strong><\/code><strong> \/ <\/strong><code><strong>Prometheus<\/strong><\/code>: \u0110\u00e2y l\u00e0 c\u00e1c h\u1ec7 th\u1ed1ng gi\u00e1m s\u00e1t c\u1ea5p doanh nghi\u1ec7p, m\u1ea1nh m\u1ebd h\u01a1n, cho ph\u00e9p b\u1ea1n thu th\u1eadp l\u1ecbch s\u1eed d\u1eef li\u1ec7u v\u00e0 thi\u1ebft l\u1eadp c\u00e1c c\u1ea3nh b\u00e1o ph\u1ee9c t\u1ea1p (v\u00ed d\u1ee5: &#8220;G\u1eedi email cho t\u00f4i n\u1ebfu CPU &gt; 90% trong 5 ph\u00fat li\u00ean t\u1ee5c&#8221;).<\/li>\n<li><strong>Ki\u1ec3m tra log th\u1ee7 c\u00f4ng<\/strong>: \u0110\u1eebng qu\u00ean th\u1ec9nh tho\u1ea3ng ki\u1ec3m tra c\u00e1c file log quan tr\u1ecdng, v\u00ed d\u1ee5: <code>tail -f \/var\/log\/nginx\/error.log<\/code> \u0111\u1ec3 xem l\u1ed7i web server, ho\u1eb7c <code>journalctl -fu sshd<\/code> \u0111\u1ec3 theo d\u00f5i c\u00e1c l\u01b0\u1ee3t \u0111\u0103ng nh\u1eadp SSH.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Thiet-lap-backup-dinh-ky-va-tu-dong-cap-nhat-bao-mat\"><\/span>Thi\u1ebft l\u1eadp backup \u0111\u1ecbnh k\u1ef3 v\u00e0 t\u1ef1 \u0111\u1ed9ng c\u1eadp nh\u1eadt b\u1ea3o m\u1eadt<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>1. Backup (Sao l\u01b0u)<\/strong> \u0110\u00e2y l\u00e0 c\u00f4ng vi\u1ec7c <i>b\u1eaft bu\u1ed9c<\/i>. D\u00f9 b\u1ea1n t\u1ed1i \u01b0u t\u1ed1t \u0111\u1ebfn \u0111\u00e2u, s\u1ef1 c\u1ed1 ph\u1ea7n c\u1ee9ng, l\u1ed7i ph\u1ea7n m\u1ec1m ho\u1eb7c t\u1ea5n c\u00f4ng m\u1ea1ng v\u1eabn c\u00f3 th\u1ec3 x\u1ea3y ra. H\u00e3y s\u1eed d\u1ee5ng t\u00ednh n\u0103ng Snapshot (ch\u1ee5p \u1ea3nh) c\u1ee7a nh\u00e0 cung c\u1ea5p VPS (nh\u01b0 InterData) ho\u1eb7c t\u1ef1 thi\u1ebft l\u1eadp backup (v\u00ed d\u1ee5 d\u00f9ng <code>rsync<\/code>) ra m\u1ed9t n\u01a1i l\u01b0u tr\u1eef kh\u00e1c.<\/p>\n<p><strong>2. T\u1ef1 \u0111\u1ed9ng c\u1eadp nh\u1eadt b\u1ea3o m\u1eadt (Unattended Upgrades)<\/strong> C\u00e1c l\u1ed7 h\u1ed5ng b\u1ea3o m\u1eadt m\u1edbi \u0111\u01b0\u1ee3c ph\u00e1t hi\u1ec7n m\u1ed7i ng\u00e0y. Vi\u1ec7c c\u1eadp nh\u1eadt VPS th\u01b0\u1eddng xuy\u00ean l\u00e0 r\u1ea5t quan tr\u1ecdng. B\u1ea1n c\u00f3 th\u1ec3 c\u1ea5u h\u00ecnh h\u1ec7 th\u1ed1ng t\u1ef1 \u0111\u1ed9ng c\u00e0i \u0111\u1eb7t c\u00e1c b\u1ea3n v\u00e1 b\u1ea3o m\u1eadt quan tr\u1ecdng.<\/p>\n<ul>\n<li>Tr\u00ean Ubuntu\/Debian, c\u00e0i \u0111\u1eb7t g\u00f3i <code>unattended-upgrades<\/code> v\u00e0 c\u1ea5u h\u00ecnh \u0111\u1ec3 t\u1ef1 \u0111\u1ed9ng c\u1eadp nh\u1eadt.<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Mot-so-cau-hoi-thuong-gap-FAQs\"><\/span>M\u1ed9t s\u1ed1 c\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p (FAQs)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"Toi-uu-hoa-VPS-Linux-co-lam-mat-du-lieu-khong\"><\/span>T\u1ed1i \u01b0u h\u00f3a VPS Linux c\u00f3 l\u00e0m m\u1ea5t d\u1eef li\u1ec7u kh\u00f4ng?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>C\u00e2u tr\u1ea3 l\u1eddi l\u00e0 <strong>h\u1ea7u h\u1ebft l\u00e0 kh\u00f4ng<\/strong>, <i>n\u1ebfu<\/i> b\u1ea1n th\u1ef1c hi\u1ec7n c\u1ea9n th\u1eadn. C\u00e1c thao t\u00e1c nh\u01b0 t\u1eaft d\u1ecbch v\u1ee5, tinh ch\u1ec9nh <code>sysctl.conf<\/code>, c\u1ea5u h\u00ecnh Nginx, hay c\u00e0i <code>Fail2Ban<\/code> \u0111\u1ec1u r\u1ea5t an to\u00e0n.<\/p>\n<p>Tuy nhi\u00ean, <i>lu\u00f4n lu\u00f4n<\/i> sao l\u01b0u (backup) d\u1eef li\u1ec7u c\u1ee7a b\u1ea1n tr\u01b0\u1edbc khi th\u1ef1c hi\u1ec7n c\u00e1c thay \u0111\u1ed5i l\u1edbn li\u00ean quan \u0111\u1ebfn h\u1ec7 th\u1ed1ng t\u1ec7p tin (<code>\/etc\/fstab<\/code>), ph\u00e2n v\u00f9ng \u1ed5 c\u1ee9ng, ho\u1eb7c c\u00e1c c\u1ea5u h\u00ecnh database quan tr\u1ecdng (<code>innodb_buffer_pool_size<\/code>). An to\u00e0n l\u00e0 tr\u00ean h\u1ebft.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Bao-lau-nen-toi-uu-va-kiem-tra-VPS-mot-lan\"><\/span>Bao l\u00e2u n\u00ean t\u1ed1i \u01b0u v\u00e0 ki\u1ec3m tra VPS m\u1ed9t l\u1ea7n?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><strong>T\u1ed1i \u01b0u h\u00f3a (Tuning)<\/strong>: B\u1ea1n n\u00ean th\u1ef1c hi\u1ec7n m\u1ed9t \u0111\u1ee3t t\u1ed1i \u01b0u h\u00f3a l\u1edbn ngay sau khi c\u00e0i \u0111\u1eb7t VPS v\u00e0 tri\u1ec3n khai \u1ee9ng d\u1ee5ng.<\/li>\n<li><strong>Ki\u1ec3m tra (Monitoring)<\/strong>: B\u1ea1n n\u00ean theo d\u00f5i hi\u1ec7u su\u1ea5t (qua <code>htop<\/code> ho\u1eb7c <code>Netdata<\/code>) h\u00e0ng ng\u00e0y ho\u1eb7c h\u00e0ng tu\u1ea7n, \u0111\u1eb7c bi\u1ec7t l\u00e0 sau khi c\u00f3 thay \u0111\u1ed5i v\u1ec1 code ho\u1eb7c l\u01b0u l\u01b0\u1ee3ng truy c\u1eadp.<\/li>\n<li><strong>B\u1ea3o tr\u00ec (Maintenance)<\/strong>: C\u1eadp nh\u1eadt b\u1ea3o m\u1eadt v\u00e0 d\u1ecdn d\u1eb9p log n\u00ean \u0111\u01b0\u1ee3c th\u1ef1c hi\u1ec7n h\u00e0ng tu\u1ea7n ho\u1eb7c h\u00e0ng th\u00e1ng.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"VPS-cua-InterData-da-duoc-toi-uu-san-chua\"><\/span>VPS c\u1ee7a InterData \u0111\u00e3 \u0111\u01b0\u1ee3c t\u1ed1i \u01b0u s\u1eb5n ch\u01b0a?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>VPS t\u1ea1i InterData \u0111\u01b0\u1ee3c cung c\u1ea5p tr\u00ean n\u1ec1n t\u1ea3ng h\u1ea1 t\u1ea7ng m\u1ea1ng v\u00e0 ph\u1ea7n c\u1ee9ng t\u1ed1c \u0111\u1ed9 cao (nh\u01b0 \u1ed5 c\u1ee9ng NVMe), \u0111\u1ea3m b\u1ea3o hi\u1ec7u su\u1ea5t n\u1ec1n t\u1ea3ng t\u1ed1t nh\u1ea5t. H\u1ec7 \u0111i\u1ec1u h\u00e0nh \u0111\u01b0\u1ee3c c\u00e0i \u0111\u1eb7t l\u00e0 b\u1ea3n g\u1ed1c (OS build) t\u1eeb nh\u00e0 ph\u00e1t h\u00e0nh \u0111\u1ec3 \u0111\u1ea3m b\u1ea3o t\u00ednh to\u00e0n v\u1eb9n v\u00e0 linh ho\u1ea1t t\u1ed1i \u0111a.<\/p>\n<p>\u0110i\u1ec1u n\u00e0y cho ph\u00e9p b\u1ea1n, v\u1edbi t\u01b0 c\u00e1ch l\u00e0 qu\u1ea3n tr\u1ecb vi\u00ean, to\u00e0n quy\u1ec1n \u00e1p d\u1ee5ng c\u00e1c h\u01b0\u1edbng d\u1eabn t\u1ed1i \u01b0u h\u00f3a trong b\u00e0i vi\u1ebft n\u00e0y \u0111\u1ec3 tinh ch\u1ec9nh h\u1ec7 th\u1ed1ng sao cho <i>ph\u00f9 h\u1ee3p nh\u1ea5t v\u1edbi nhu c\u1ea7u s\u1eed d\u1ee5ng c\u1ee5 th\u1ec3<\/i> c\u1ee7a m\u00ecnh (v\u00ed d\u1ee5: t\u1ed1i \u01b0u cho database s\u1ebd kh\u00e1c t\u1ed1i \u01b0u cho web server).<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Lam-the-nao-de-hoan-tac-revert-neu-cau-hinh-sai\"><\/span>L\u00e0m th\u1ebf n\u00e0o \u0111\u1ec3 ho\u00e0n t\u00e1c (revert) n\u1ebfu c\u1ea5u h\u00ecnh sai?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0110\u00e2y l\u00e0 m\u1ed9t k\u1ef9 n\u0103ng qu\u1ea3n tr\u1ecb r\u1ea5t quan tr\u1ecdng.<\/p>\n<ol>\n<li><strong>Lu\u00f4n sao l\u01b0u file c\u1ea5u h\u00ecnh g\u1ed1c<\/strong>: Tr\u01b0\u1edbc khi ch\u1ec9nh s\u1eeda b\u1ea5t k\u1ef3 file n\u00e0o (v\u00ed d\u1ee5: <code>\/etc\/ssh\/sshd_config<\/code>), h\u00e3y t\u1ea1o m\u1ed9t b\u1ea3n sao: <code>sudo cp \/etc\/ssh\/sshd_config \/etc\/ssh\/sshd_config.bak<\/code> N\u1ebfu c\u1ea5u h\u00ecnh m\u1edbi b\u1ecb l\u1ed7i, b\u1ea1n ch\u1ec9 c\u1ea7n x\u00f3a file l\u1ed7i v\u00e0 kh\u00f4i ph\u1ee5c file <code>.bak<\/code>.<\/li>\n<li><strong>S\u1eed d\u1ee5ng Snapshot<\/strong>: N\u1ebfu nh\u00e0 cung c\u1ea5p VPS (nh\u01b0 InterData) h\u1ed7 tr\u1ee3, h\u00e3y t\u1ea1o m\u1ed9t Snapshot tr\u01b0\u1edbc khi th\u1ef1c hi\u1ec7n thay \u0111\u1ed5i l\u1edbn. N\u1ebfu th\u1ea5t b\u1ea1i, b\u1ea1n c\u00f3 th\u1ec3 kh\u00f4i ph\u1ee5c VPS v\u1ec1 \u0111\u00fang tr\u1ea1ng th\u00e1i tr\u01b0\u1edbc \u0111\u00f3.<\/li>\n<li><strong>Ghi ch\u00e9p<\/strong>: Ghi l\u1ea1i nh\u1eefng g\u00ec b\u1ea1n \u0111\u00e3 thay \u0111\u1ed5i.<\/li>\n<\/ol>\n<h3><span class=\"ez-toc-section\" id=\"Toi-uu-RAM-hay-CPU-quan-trong-hon\"><\/span>T\u1ed1i \u01b0u RAM hay CPU quan tr\u1ecdng h\u01a1n?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0110i\u1ec1u n\u00e0y t\u00f9y thu\u1ed9c v\u00e0o &#8220;n\u00fat th\u1eaft c\u1ed5 chai&#8221; c\u1ee7a b\u1ea1n.<\/p>\n<ul>\n<li>N\u1ebfu <code>htop<\/code> cho th\u1ea5y RAM c\u1ee7a b\u1ea1n lu\u00f4n \u0111\u1ea7y v\u00e0 c\u1ed9t <code>swap<\/code> \u0111ang \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng nhi\u1ec1u (<code>vmstat<\/code> b\u00e1o <code>si<\/code>\/<code>so<\/code> cao), th\u00ec <strong>RAM l\u00e0 \u01b0u ti\u00ean s\u1ed1 1<\/strong>. Thi\u1ebfu RAM s\u1ebd l\u00e0m ch\u1eadm to\u00e0n b\u1ed9 h\u1ec7 th\u1ed1ng.<\/li>\n<li>N\u1ebfu RAM v\u1eabn c\u00f2n tr\u1ed1ng nhi\u1ec1u nh\u01b0ng m\u1ed9t ho\u1eb7c nhi\u1ec1u nh\u00e2n CPU lu\u00f4n \u1edf m\u1ee9c 100%, th\u00ec <strong>CPU l\u00e0 v\u1ea5n \u0111\u1ec1<\/strong>. \u0110i\u1ec1u n\u00e0y th\u01b0\u1eddng x\u1ea3y ra do code PHP\/Python x\u1eed l\u00fd k\u00e9m hi\u1ec7u qu\u1ea3, ho\u1eb7c database ch\u1ea1y truy v\u1ea5n ph\u1ee9c t\u1ea1p.<\/li>\n<\/ul>\n<p>Th\u00f4ng th\u01b0\u1eddng, c\u00e1c v\u1ea5n \u0111\u1ec1 v\u1ec1 I\/O (\u1ed5 c\u1ee9ng ch\u1eadm) v\u00e0 thi\u1ebfu RAM l\u00e0 ph\u1ed5 bi\u1ebfn nh\u1ea5t tr\u00ean c\u00e1c VPS c\u1ea5p th\u1ea5p.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Loi-ket\"><\/span>L\u1eddi k\u1ebft<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>T\u1ed1i \u01b0u h\u00f3a VPS Linux l\u00e0 m\u1ed9t qu\u00e1 tr\u00ecnh k\u1ebft h\u1ee3p gi\u1eefa k\u1ef9 thu\u1eadt v\u00e0 kinh nghi\u1ec7m, gi\u00fap b\u1ea1n khai th\u00e1c t\u1ed1i \u0111a s\u1ee9c m\u1ea1nh c\u1ee7a m\u00e1y ch\u1ee7. B\u1eb1ng c\u00e1ch \u00e1p d\u1ee5ng c\u00e1c b\u01b0\u1edbc t\u1eeb ki\u1ec3m tra hi\u1ec7u n\u0103ng, tinh ch\u1ec9nh h\u1ec7 th\u1ed1ng, t\u1ed1i \u01b0u m\u1ea1ng, b\u1ea3o m\u1eadt, v\u00e0 t\u1ed1i \u01b0u \u1ee9ng d\u1ee5ng, b\u1ea1n c\u00f3 th\u1ec3 c\u1ea3i thi\u1ec7n \u0111\u00e1ng k\u1ec3 t\u1ed1c \u0111\u1ed9, \u0111\u1ed9 \u1ed5n \u0111\u1ecbnh v\u00e0 t\u00ednh an to\u00e0n cho VPS c\u1ee7a m\u00ecnh.<\/p>\n<div style=\"background-color: #f4f8ff; border: 2px solid #007bff; border-radius: 8px; padding: 24px; text-align: center; margin-top: 30px; margin-bottom: 30px;\">\n<p style=\"margin-top: 0; color: #004a99; font-size: 1.5em;\">Tr\u1ea3i nghi\u1ec7m VPS Linux t\u1ed1c \u0111\u1ed9 cao t\u1ea1i InterData!<\/p>\n<p style=\"font-size: 1.1em;\">VPS c\u1ea5u h\u00ecnh m\u1ea1nh, \u1ed5 c\u1ee9ng NVMe U.2 si\u00eau t\u1ed1c, h\u1ed7 tr\u1ee3 k\u1ef9 thu\u1eadt 24\/7. T\u1ed1i \u01b0u h\u00f3a hi\u1ec7u su\u1ea5t website c\u1ee7a b\u1ea1n ngay h\u00f4m nay v\u1edbi h\u1ea1 t\u1ea7ng v\u01b0\u1ee3t tr\u1ed9i.<\/p>\n<a href=\"https:\/\/interdata.vn\/vps-linux\/\" class=\"button primary is-primary is-medium\"  >\n\t\t<span>THU\u00ca VPS LINUX GI\u00c1 R\u1eba CH\u1ea4T L\u01af\u1ee2NG NGAY<\/span>\n\t<\/a>\n\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>B\u1ea1n \u0111ang t\u00ecm ki\u1ebfm h\u01b0\u1edbng d\u1eabn t\u1ed1i \u01b0u h\u00f3a VPS Linux \u0111\u1ec3 h\u1ec7 th\u1ed1ng ch\u1ea1y m\u01b0\u1ee3t m\u00e0 v\u00e0 an to\u00e0n h\u01a1n? B\u00e0i vi\u1ebft n\u00e0y c\u1ee7a InterData s\u1ebd cung c\u1ea5p c\u00e1c k\u1ef9 thu\u1eadt chuy\u00ean s\u00e2u, t\u1eeb tinh ch\u1ec9nh t\u00e0i nguy\u00ean, t\u0103ng t\u1ed1c I\/O, \u0111\u1ebfn b\u1ea3o m\u1eadt SSH v\u00e0 t\u1ed1i \u01b0u web server. H\u00e3y c\u00f9ng t\u00ecm hi\u1ec3u<\/p>\n","protected":false},"author":2,"featured_media":35297,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[49],"tags":[],"class_list":["post-35286","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-vps"],"_links":{"self":[{"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/posts\/35286","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/comments?post=35286"}],"version-history":[{"count":2,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/posts\/35286\/revisions"}],"predecessor-version":[{"id":35296,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/posts\/35286\/revisions\/35296"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/media\/35297"}],"wp:attachment":[{"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/media?parent=35286"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/categories?post=35286"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/tags?post=35286"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}