{"id":43675,"date":"2026-09-22T10:18:27","date_gmt":"2026-09-22T03:18:27","guid":{"rendered":"https:\/\/interdata.vn\/blog\/?p=43675"},"modified":"2026-09-22T10:18:27","modified_gmt":"2026-09-22T03:18:27","slug":"xu-ly-tinh-trang-full-inode","status":"publish","type":"post","link":"https:\/\/interdata.vn\/blog\/xu-ly-tinh-trang-full-inode\/","title":{"rendered":"X\u1eed L\u00fd T\u00ecnh Tr\u1ea1ng Full Inode Tr\u00ean VPS\/Server Linux &#8211; Ch\u1ea9n \u0110o\u00e1n, D\u1ecdn D\u1eb9p &#038; Ph\u00f2ng Ng\u1eeba T\u1eeb A-Z"},"content":{"rendered":"<p style=\"text-align: justify;\"><span style=\"font-size: 100%;\"><strong>X\u1eed l\u00fd t\u00ecnh tr\u1ea1ng full inode<\/strong> l\u00e0 vi\u1ec7c c\u1ea7n l\u00e0m ngay khi website b\u00e1o l\u1ed7i 500, kh\u00f4ng upload \u0111\u01b0\u1ee3c file ho\u1eb7c d\u1ecbch v\u1ee5 kh\u00f4ng kh\u1edfi \u0111\u1ed9ng, trong khi <code>df -h<\/code> v\u1eabn b\u00e1o \u1ed5 c\u1ee9ng c\u00f2n h\u00e0ng ch\u1ee5c GB tr\u1ed1ng. V\u1ea5n \u0111\u1ec1 kh\u00f4ng n\u1eb1m \u1edf dung l\u01b0\u1ee3ng l\u01b0u tr\u1eef m\u00e0 \u1edf inode \u0111\u00e3 c\u1ea1n. Ph\u1ea7n d\u01b0\u1edbi \u0111\u00e2y \u0111i t\u1eeb c\u00e1ch ch\u1ea9n \u0111o\u00e1n, d\u1ecdn d\u1eb9p \u0111\u1ebfn ph\u00f2ng ng\u1eeba tr\u00ean VPS Linux. N\u1ebfu c\u1ea7n m\u00f4i tr\u01b0\u1eddng root \u0111\u1ea7y \u0111\u1ee7 \u0111\u1ec3 th\u1ef1c h\u00e0nh, <a href=\"https:\/\/interdata.vn\/\" target=\"_blank\" rel=\"noopener\">InterData<\/a> cung c\u1ea5p VPS v\u00e0 Cloud Server v\u1edbi to\u00e0n quy\u1ec1n qu\u1ea3n tr\u1ecb.<\/span><\/p>\n<div style=\"background-color: #eff6ff; padding: 20px; border: 1.5px solid #BFDBFE; border-radius: 12px; margin-bottom: 40px; box-shadow: 0 8px 20px rgba(37,99,235,0.05);\">\n<p style=\"font-family: 'Be Vietnam Pro', sans-serif; font-weight: bold; font-size: 18px; margin: 0 0 15px; color: #1e3a8a;\">N\u1ed8I DUNG B\u00c0I VI\u1ebeT<\/p>\n<ul style=\"list-style-type: none; padding-left: 0; margin: 0;\">\n<li style=\"margin-bottom: 10px;\"><a style=\"text-decoration: none; color: #2563eb; font-weight: bold;\" href=\"#section1\">Inode l\u00e0 g\u00ec? V\u00ec sao \u0111\u1ea7y inode l\u1ea1i g\u00e2y l\u1ed7i?<\/a><\/li>\n<li style=\"margin-bottom: 10px;\"><a style=\"text-decoration: none; color: #2563eb; font-weight: bold;\" href=\"#section2\">C\u00e1ch ki\u1ec3m tra v\u00e0 ch\u1ea9n \u0111o\u00e1n inode b\u1ecb \u0111\u1ea7y<\/a><\/li>\n<li style=\"margin-bottom: 10px;\"><a style=\"text-decoration: none; color: #2563eb; font-weight: bold;\" href=\"#section3\">X\u1eed l\u00fd theo t\u1eebng nguy\u00ean nh\u00e2n<\/a><\/li>\n<li style=\"margin-bottom: 10px;\"><a style=\"text-decoration: none; color: #2563eb; font-weight: bold;\" href=\"#section4\">X\u1eed l\u00fd tr\u00ean control panel ph\u1ed5 bi\u1ebfn<\/a><\/li>\n<li style=\"margin-bottom: 10px;\"><a style=\"text-decoration: none; color: #2563eb; font-weight: bold;\" href=\"#section5\">Ph\u00f2ng ng\u1eeba inode b\u1ecb \u0111\u1ea7y tr\u1edf l\u1ea1i<\/a><\/li>\n<li style=\"margin-bottom: 10px;\"><a style=\"text-decoration: none; color: #2563eb; font-weight: bold;\" href=\"#section6\">M\u1ed9t s\u1ed1 l\u1ed7i b\u1ea5t th\u01b0\u1eddng sau khi d\u1ecdn inode<\/a><\/li>\n<li style=\"margin-bottom: 10px;\"><a style=\"text-decoration: none; color: #2563eb; font-weight: bold;\" href=\"#section7\">C\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p v\u1ec1 full inode<\/a><\/li>\n<\/ul>\n<\/div>\n\n\n<style>\n.interdata-plan-carousel,.interdata-plan-carousel *{box-sizing:border-box}\n.interdata-plan-carousel{--blue:#005bea;--blue-dark:#004dcc;--text:#071832;--muted:#516173;--border:#d8e6fb;--bg:#f3f8ff;--shadow:0 5px 14px rgba(0,62,145,.08);background:var(--bg);padding:14px 56px 18px;position:relative;overflow:hidden;border-radius:20px;}\n.interdata-carousel-heading{color:#f00;font-family:Roboto,sans-serif;font-size:18px;line-height:1.35;font-weight:800;text-align:center;margin:0 0 14px}\n.interdata-plan-viewport{overflow:hidden;width:100%}\n.interdata-plan-track{display:flex;align-items:stretch;gap:12px;overflow:visible;padding:0 0 4px;transform:translate3d(0,0,0);transition:transform .45s ease;will-change:transform;touch-action:pan-y}\n.interdata-plan-card{flex:0 0 calc((100% - 24px)\/3);min-width:0;min-height:0!important;height:auto;background:#fff;border:1px solid var(--border);border-radius:8px;padding:15px 12px 13px;display:flex;flex-direction:column;box-shadow:var(--shadow)}\n.interdata-plan-title{color:var(--blue-dark);font-size:16px;line-height:1.22;font-weight:800;text-align:center;margin:0 0 7px;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n.interdata-plan-price{color:var(--blue-dark);font-size:24px;line-height:1;font-weight:900;text-align:center;margin-bottom:12px;white-space:nowrap;letter-spacing:0}\n.interdata-plan-price span{font-size:10px;font-weight:800;margin-left:2px}\n.interdata-plan-badge{align-self:center;display:inline-flex;align-items:center;justify-content:center;background:#ff3934;color:#fff;border-radius:5px;padding:7px 8px;font-size:9px;line-height:1;font-weight:800;margin-bottom:15px;white-space:nowrap;max-width:100%}\n.interdata-plan-features{list-style:none!important;padding:0!important;margin:0!important}\n.interdata-plan-features li{display:flex;gap:7px;align-items:flex-start;color:var(--text);font-size:12px;line-height:1.35;font-weight:700;text-align:left;margin:0 0 10px!important;padding:0!important}\n.interdata-plan-icon{width:14px;min-width:14px;height:14px;color:#0069ff;margin-top:2px}\n.interdata-plan-icon svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}\n.interdata-plan-spacer{flex:1;min-height:16px}\n.interdata-plan-button{display:flex;align-items:center;justify-content:center;min-height:42px;width:100%;margin-top:auto!important;margin-bottom:0!important;background:var(--blue);color:#fff!important;border-radius:5px;font-size:13px;font-weight:800;text-decoration:none!important;box-shadow:0 7px 14px rgba(0,91,234,.24);transition:transform .2s ease,background .2s ease}\n.interdata-plan-button:hover{background:var(--blue-dark);color:#fff!important;transform:translateY(-1px)}\n.interdata-carousel-arrow{position:absolute;top:50%;z-index:5;width:44px;height:54px;border:2px solid #fff!important;border-radius:999px;background:var(--blue)!important;color:#fff!important;box-shadow:0 8px 22px rgba(0,62,145,.32);display:flex!important;align-items:center;justify-content:center;cursor:pointer;transform:translateY(-35%);transition:background .2s ease,color .2s ease,opacity .2s ease,transform .2s ease}\n.interdata-carousel-arrow:hover{background:var(--blue-dark)!important;color:#fff!important;transform:translateY(-35%) scale(1.04)}\n.interdata-carousel-arrow:disabled{opacity:.78;cursor:not-allowed;background:#8aa6cf!important;color:#fff!important}\n.interdata-carousel-arrow:disabled:hover{background:#8aa6cf!important;color:#fff!important;transform:translateY(-35%)}\n.interdata-carousel-arrow svg{display:none!important}\n.interdata-carousel-arrow:before{content:none!important;display:none!important}\n.interdata-carousel-mark{display:block!important;color:#fff!important;font-family:Arial,Helvetica,sans-serif!important;font-size:38px!important;font-weight:900!important;line-height:1!important;text-align:center!important;pointer-events:none!important;transform:translateY(-2px)}\n.interdata-carousel-prev{left:14px}\n.interdata-carousel-prev .interdata-carousel-mark{margin-left:-2px}\n.interdata-carousel-next{right:14px}\n.interdata-carousel-next .interdata-carousel-mark{margin-right:-2px}\n@media (max-width:800px){.interdata-plan-carousel{padding:12px 44px 16px}.interdata-plan-card{flex-basis:calc((100% - 12px)\/2)}.interdata-carousel-heading{font-size:16px}.interdata-carousel-prev{left:6px}.interdata-carousel-next{right:6px}}\n@media (max-width:480px){.interdata-plan-carousel{padding:12px 38px 16px}.interdata-plan-card{flex-basis:100%}.interdata-plan-price{font-size:23px}.interdata-carousel-arrow{width:34px;height:44px}.interdata-carousel-mark{font-size:32px!important}.interdata-carousel-prev{left:3px}.interdata-carousel-next{right:3px}}\n<\/style>\n\n<div class=\"interdata-plan-carousel\" data-interdata-carousel>\n  <div class=\"interdata-carousel-heading\">Si\u00eau \u01afu \u0110\u00e3i VPS \/ CLOUD SERVER - Ti\u1ebft Ki\u1ec7m \u0110\u1ebfn 70%<\/div>\n\n  <svg width=\"0\" height=\"0\" style=\"position:absolute;visibility:hidden\" aria-hidden=\"true\">\n    <symbol id=\"id-icon-cpu\" viewBox=\"0 0 24 24\"><rect x=\"7\" y=\"7\" width=\"10\" height=\"10\" rx=\"2\"><\/rect><path d=\"M4 9h3M4 15h3M17 9h3M17 15h3M9 4v3M15 4v3M9 17v3M15 17v3\"><\/path><path d=\"M10 10h4v4h-4z\"><\/path><\/symbol>\n    <symbol id=\"id-icon-ram\" viewBox=\"0 0 24 24\"><rect x=\"4\" y=\"8\" width=\"16\" height=\"8\" rx=\"2\"><\/rect><path d=\"M7 16v2M11 16v2M15 16v2M19 16v2M7 11h1M11 11h1M15 11h1\"><\/path><\/symbol>\n    <symbol id=\"id-icon-storage\" viewBox=\"0 0 24 24\"><rect x=\"6\" y=\"3\" width=\"12\" height=\"18\" rx=\"2\"><\/rect><path d=\"M9 7h6\"><\/path><circle cx=\"12\" cy=\"16\" r=\"1.5\"><\/circle><\/symbol>\n    <symbol id=\"id-icon-network\" viewBox=\"0 0 24 24\"><path d=\"M5 12.5a10 10 0 0 1 14 0\"><\/path><path d=\"M8.5 16a5 5 0 0 1 7 0\"><\/path><path d=\"M12 19h.01\"><\/path><\/symbol>\n    <symbol id=\"id-icon-gift\" viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"8\" width=\"18\" height=\"13\" rx=\"2\"><\/rect><path d=\"M12 8v13M3 12h18\"><\/path><path d=\"M7.5 8C6.1 8 5 6.9 5 5.5S6.1 3 7.5 3C10 3 12 8 12 8\"><\/path><path d=\"M16.5 8C17.9 8 19 6.9 19 5.5S17.9 3 16.5 3C14 3 12 8 12 8\"><\/path><\/symbol>\n  <\/svg>\n\n  <button class=\"interdata-carousel-arrow interdata-carousel-prev\" type=\"button\" aria-label=\"Xem 3 g\u00f3i tr\u01b0\u1edbc\" onclick=\"var r=this.closest('[data-interdata-carousel]');if(!r)return false;var t=r.querySelector('.interdata-plan-track'),c=t?t.querySelectorAll('.interdata-plan-card'):[];if(!t||!c.length)return false;var v=window.matchMedia('(max-width:480px)').matches?1:(window.matchMedia('(max-width:800px)').matches?2:3),m=Math.max(0,c.length-Math.min(v,c.length||1)),s=[],i=0;while(i&lt;m){s.push(i);i+=v}if(!s.length||s[s.length-1]!==m)s.push(m);var p=parseInt(r.getAttribute('data-inline-page')||'0',10);p=(p-1+s.length)%s.length;r.setAttribute('data-inline-page',p);var g=parseFloat(window.getComputedStyle(t).gap)||12,w=c[0].getBoundingClientRect().width;t.style.transition='transform .45s ease';t.style.transform='translate3d('+(-(w+g)*s[p])+'px,0,0)';return false;\">\n    <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M15 18l-6-6 6-6\"><\/path><\/svg>\n    <span class=\"interdata-carousel-mark\" aria-hidden=\"true\">&#8249;<\/span>\n  <\/button>\n\n  <div class=\"interdata-plan-viewport\">\n    <div class=\"interdata-plan-track\">\n      <!-- 7 card d\u1ef1 ph\u00f2ng: JavaScript s\u1ebd \u0111\u1ed3ng b\u1ed9 l\u1ea1i t\u1eeb API portal khi trang t\u1ea3i. -->\n      <article class=\"interdata-plan-card\" data-plan-pid=\"490\">\n        <h3 class=\"interdata-plan-title\">Premium Base<\/h3>\n        <div class=\"interdata-plan-price\">299.000 \u0111<span>\/3 th\u00e1ng<\/span><\/div>\n        <div class=\"interdata-plan-badge\">GIA H\u1ea0N KH\u00d4NG \u0110\u1ed4I GI\u00c1<\/div>\n        <ul class=\"interdata-plan-features\">\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-cpu\"><\/use><\/svg><\/span>2 vCore Intel Xeon Scalable<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-ram\"><\/use><\/svg><\/span>2 GB RAM<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-storage\"><\/use><\/svg><\/span>30 GB SSD NVMe<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>1 IPv4 Private<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>300Mbps Network Port<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>Unlimited Bandwidth<\/li>\n        <\/ul>\n\n        <a class=\"interdata-plan-button\" href=\"https:\/\/support.interdata.vn\/index.php?rp=\/store\/best-value-plans-2026\/best-value-plans-premium-base\" target=\"_blank\" rel=\"noopener\">\u0110\u0103ng k\u00fd ngay<\/a>\n      <\/article>\n\n      <article class=\"interdata-plan-card\" data-plan-pid=\"529\">\n        <h3 class=\"interdata-plan-title\">INTER PLATINUM 1<\/h3>\n        <div class=\"interdata-plan-price\">998.000 \u0111<span>\/n\u0103m<\/span><\/div>\n        <div class=\"interdata-plan-badge\">GIA H\u1ea0N KH\u00d4NG \u0110\u1ed4I GI\u00c1<\/div>\n        <ul class=\"interdata-plan-features\">\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-cpu\"><\/use><\/svg><\/span>2 vCore<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-ram\"><\/use><\/svg><\/span>3 GB RAM<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-storage\"><\/use><\/svg><\/span>30 GB SSD NVMe<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>1 IPv4 Private<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>300Mbps Network Port<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>Unlimited Bandwidth<\/li>\n        <\/ul>\n\n        <a class=\"interdata-plan-button\" href=\"https:\/\/support.interdata.vn\/index.php?rp=\/store\/inter-platinum-series-2026\/inter-platinum-1\" target=\"_blank\" rel=\"noopener\">\u0110\u0103ng k\u00fd ngay<\/a>\n      <\/article>\n\n      <article class=\"interdata-plan-card\" data-plan-pid=\"530\">\n        <h3 class=\"interdata-plan-title\">INTER PLATINUM 2<\/h3>\n        <div class=\"interdata-plan-price\">2.666.000 \u0111<span>\/n\u0103m<\/span><\/div>\n        <div class=\"interdata-plan-badge\">GIA H\u1ea0N KH\u00d4NG \u0110\u1ed4I GI\u00c1<\/div>\n        <ul class=\"interdata-plan-features\">\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-cpu\"><\/use><\/svg><\/span>5 vCore<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-ram\"><\/use><\/svg><\/span>8 GB RAM<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-storage\"><\/use><\/svg><\/span>70 GB SSD NVMe<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>1 IPv4 Private<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>300Mbps Network Port<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>Unlimited Bandwidth<\/li>\n        <\/ul>\n\n        <a class=\"interdata-plan-button\" href=\"https:\/\/support.interdata.vn\/index.php?rp=\/store\/inter-platinum-series-2026\/inter-platinum-2\" target=\"_blank\" rel=\"noopener\">\u0110\u0103ng k\u00fd ngay<\/a>\n      <\/article>\n\n      <article class=\"interdata-plan-card\" data-plan-pid=\"531\">\n        <h3 class=\"interdata-plan-title\">INTER PLATINUM 3<\/h3>\n        <div class=\"interdata-plan-price\">5.888.000 \u0111<span>\/n\u0103m<\/span><\/div>\n        <div class=\"interdata-plan-badge\">GIA H\u1ea0N KH\u00d4NG \u0110\u1ed4I GI\u00c1<\/div>\n        <ul class=\"interdata-plan-features\">\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-cpu\"><\/use><\/svg><\/span>9 vCore<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-ram\"><\/use><\/svg><\/span>16 GB RAM<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-storage\"><\/use><\/svg><\/span>140 GB SSD NVMe<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>1 IPv4 Private<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>300Mbps Network Port<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>Unlimited Bandwidth<\/li>\n        <\/ul>\n\n        <a class=\"interdata-plan-button\" href=\"https:\/\/support.interdata.vn\/index.php?rp=\/store\/inter-platinum-series-2026\/inter-platinum-3\" target=\"_blank\" rel=\"noopener\">\u0110\u0103ng k\u00fd ngay<\/a>\n      <\/article>\n\n      <article class=\"interdata-plan-card\" data-plan-pid=\"521\">\n        <h3 class=\"interdata-plan-title\">BD-Cloud 1<\/h3>\n        <div class=\"interdata-plan-price\">988.000 \u0111<span>\/n\u0103m<\/span><\/div>\n        <div class=\"interdata-plan-badge\">GIA H\u1ea0N KH\u00d4NG \u0110\u1ed4I GI\u00c1<\/div>\n        <ul class=\"interdata-plan-features\">\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-cpu\"><\/use><\/svg><\/span>3 vCore<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-ram\"><\/use><\/svg><\/span>3 GB RAM<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-storage\"><\/use><\/svg><\/span>30 GB SSD NVMe<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>1 IPv4 Private<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>300Mbps Network Port<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>Unlimited Bandwidth<\/li>\n        <\/ul>\n\n        <a class=\"interdata-plan-button\" href=\"https:\/\/support.interdata.vn\/index.php?rp=\/store\/best-plan-real-cloud\/bd-cloud-1\" target=\"_blank\" rel=\"noopener\">\u0110\u0103ng k\u00fd ngay<\/a>\n      <\/article>\n\n      <article class=\"interdata-plan-card\" data-plan-pid=\"522\">\n        <h3 class=\"interdata-plan-title\">BD-Cloud 2<\/h3>\n        <div class=\"interdata-plan-price\">2.988.000 \u0111<span>\/n\u0103m<\/span><\/div>\n        <div class=\"interdata-plan-badge\">GIA H\u1ea0N KH\u00d4NG \u0110\u1ed4I GI\u00c1<\/div>\n        <ul class=\"interdata-plan-features\">\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-cpu\"><\/use><\/svg><\/span>4 vCore<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-ram\"><\/use><\/svg><\/span>8 GB RAM<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-storage\"><\/use><\/svg><\/span>80 GB SSD NVMe<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>1 IPv4 Private<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>300 Mbps Network Port<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>Unlimited Bandwidth<\/li>\n        <\/ul>\n\n        <a class=\"interdata-plan-button\" href=\"https:\/\/support.interdata.vn\/index.php?rp=\/store\/best-plan-real-cloud\/bd-cloud-2\" target=\"_blank\" rel=\"noopener\">\u0110\u0103ng k\u00fd ngay<\/a>\n      <\/article>\n\n      <article class=\"interdata-plan-card\" data-plan-pid=\"523\">\n        <h3 class=\"interdata-plan-title\">BD-Cloud 3<\/h3>\n        <div class=\"interdata-plan-price\">5.999.000 \u0111<span>\/n\u0103m<\/span><\/div>\n        <div class=\"interdata-plan-badge\">GIA H\u1ea0N KH\u00d4NG \u0110\u1ed4I GI\u00c1<\/div>\n        <ul class=\"interdata-plan-features\">\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-cpu\"><\/use><\/svg><\/span>8 vCore<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-ram\"><\/use><\/svg><\/span>16 GB RAM<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-storage\"><\/use><\/svg><\/span>140 GB SSD NVMe<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>1 IPv4 Private<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>400 Mbps Network Port<\/li>\n          <li><span class=\"interdata-plan-icon\"><svg><use href=\"#id-icon-network\"><\/use><\/svg><\/span>Unlimited Bandwidth<\/li>\n        <\/ul>\n\n        <a class=\"interdata-plan-button\" href=\"https:\/\/support.interdata.vn\/index.php?rp=\/store\/best-plan-real-cloud\/bd-cloud-3\" target=\"_blank\" rel=\"noopener\">\u0110\u0103ng k\u00fd ngay<\/a>\n      <\/article>\n    <\/div>\n  <\/div>\n\n  <button class=\"interdata-carousel-arrow interdata-carousel-next\" type=\"button\" aria-label=\"Xem 3 g\u00f3i ti\u1ebfp theo\" onclick=\"var r=this.closest('[data-interdata-carousel]');if(!r)return false;var t=r.querySelector('.interdata-plan-track'),c=t?t.querySelectorAll('.interdata-plan-card'):[];if(!t||!c.length)return false;var v=window.matchMedia('(max-width:480px)').matches?1:(window.matchMedia('(max-width:800px)').matches?2:3),m=Math.max(0,c.length-Math.min(v,c.length||1)),s=[],i=0;while(i&lt;m){s.push(i);i+=v}if(!s.length||s[s.length-1]!==m)s.push(m);var p=parseInt(r.getAttribute('data-inline-page')||'0',10);p=(p+1)%s.length;r.setAttribute('data-inline-page',p);var g=parseFloat(window.getComputedStyle(t).gap)||12,w=c[0].getBoundingClientRect().width;t.style.transition='transform .45s ease';t.style.transform='translate3d('+(-(w+g)*s[p])+'px,0,0)';return false;\">\n    <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M9 18l6-6-6-6\"><\/path><\/svg>\n    <span class=\"interdata-carousel-mark\" aria-hidden=\"true\">&#8250;<\/span>\n  <\/button>\n<\/div>\n\n<script>\n(function(){\n  var API_GROUPS=[\n    {url:'https:\/\/support.interdata.vn\/packages.php?gid=89&module',pids:[490]},\n    {url:'https:\/\/support.interdata.vn\/packages.php?gid=100&module',pids:[529,530,531]},\n    {url:'https:\/\/support.interdata.vn\/packages.php?gid=97&module',pids:[521,522,523]}\n  ];\n  var PLAN_CYCLES={\n    490:{key:'quarterly',label:'3 th\u00e1ng'},\n    529:{key:'annually',label:'n\u0103m'},\n    530:{key:'annually',label:'n\u0103m'},\n    531:{key:'annually',label:'n\u0103m'},\n    521:{key:'annually',label:'n\u0103m'},\n    522:{key:'annually',label:'n\u0103m'},\n    523:{key:'annually',label:'n\u0103m'}\n  };\n\n  function fetchPlanData(){\n    if(window.interdataPlanApiPromise)return window.interdataPlanApiPromise;\n\n    window.interdataPlanApiPromise=Promise.all(API_GROUPS.map(function(group){\n      return fetch(group.url,{method:'GET',mode:'cors',cache:'no-store'})\n        .then(function(response){\n          if(!response.ok)throw new Error('API '+response.status);\n          return response.json();\n        })\n        .then(function(data){\n          if(!data||data.success!==true||!Array.isArray(data.products))return [];\n          return data.products.filter(function(product){\n            return group.pids.indexOf(Number(product.pid))!==-1;\n          });\n        })\n        .catch(function(error){\n          console.warn('Kh\u00f4ng th\u1ec3 c\u1eadp nh\u1eadt nh\u00f3m g\u00f3i InterData:',group.url,error);\n          return [];\n        });\n    })).then(function(groups){\n      return groups.reduce(function(all,products){return all.concat(products);},[]);\n    });\n\n    return window.interdataPlanApiPromise;\n  }\n\n  function parseDescription(html){\n    var source=String(html||'')\n      .replace(\/<brs*\/?>\/gi,'n')\n      .replace(\/<\/(p|div|li)>\/gi,'n');\n    var holder=document.createElement('div');\n    holder.innerHTML=source;\n    var strong=holder.querySelector('strong');\n    var badge=strong?strong.textContent.trim():'';\n    var lines=(holder.textContent||'').split(\/r?n\/).map(function(line){\n      return line.trim();\n    }).filter(Boolean);\n    if(badge&&lines[0]===badge)lines.shift();\n    return {badge:badge,features:lines};\n  }\n\n  function iconForFeature(feature){\n    if(\/ram\/i.test(feature))return 'id-icon-ram';\n    if(\/ssd|nvme|storage|disk\/i.test(feature))return 'id-icon-storage';\n    if(\/vcore|vcpu|cpu|xeon|amd\/i.test(feature))return 'id-icon-cpu';\n    if(\/ipv4|network|mbps|gbps|bandwidth\/i.test(feature))return 'id-icon-network';\n    return 'id-icon-gift';\n  }\n\n  function createFeatureItem(feature){\n    var item=document.createElement('li');\n    var icon=document.createElement('span');\n    var svg=document.createElementNS('http:\/\/www.w3.org\/2000\/svg','svg');\n    var use=document.createElementNS('http:\/\/www.w3.org\/2000\/svg','use');\n    icon.className='interdata-plan-icon';\n    use.setAttribute('href','#'+iconForFeature(feature));\n    svg.appendChild(use);\n    icon.appendChild(svg);\n    item.appendChild(icon);\n    item.appendChild(document.createTextNode(feature));\n    return item;\n  }\n\n  function updateCardFromApi(root,product){\n    var pid=Number(product.pid);\n    var cycle=PLAN_CYCLES[pid];\n    var card=root.querySelector('[data-plan-pid=\"'+pid+'\"]');\n    if(!card||!cycle)return;\n\n    var title=card.querySelector('.interdata-plan-title');\n    var priceBox=card.querySelector('.interdata-plan-price');\n    var badgeBox=card.querySelector('.interdata-plan-badge');\n    var featureList=card.querySelector('.interdata-plan-features');\n    var button=card.querySelector('.interdata-plan-button');\n    var description=parseDescription(product.description);\n    var pricing=product.pricing&&product.pricing.VND;\n    var price=pricing?Number(pricing[cycle.key]):-1;\n\n    if(title&&product.name)title.textContent=product.name;\n    if(priceBox&&Number.isFinite(price)&&price>=0){\n      priceBox.textContent=Math.round(price).toLocaleString('vi-VN')+' \u0111';\n      var suffix=document.createElement('span');\n      suffix.textContent='\/'+cycle.label;\n      priceBox.appendChild(suffix);\n    }\n    if(badgeBox&&description.badge)badgeBox.textContent=description.badge;\n    if(featureList&&description.features.length){\n      featureList.textContent='';\n      description.features.forEach(function(feature){\n        featureList.appendChild(createFeatureItem(feature));\n      });\n    }\n    if(button&&product.product_url)button.href=product.product_url;\n  }\n\n  function setupInterDataCarousel(root){\n    var track=root.querySelector('.interdata-plan-track');\n    var prev=root.querySelector('.interdata-carousel-prev');\n    var next=root.querySelector('.interdata-carousel-next');\n    if(!track||!prev||!next||track.dataset.ready==='1')return;\n    track.dataset.ready='1';\n    prev.disabled=false;\n    next.disabled=false;\n    var activePage=0;\n    var touchStartX=null;\n\n    function visibleCards(){\n      if(window.matchMedia&&window.matchMedia('(max-width:480px)').matches)return 1;\n      if(window.matchMedia&&window.matchMedia('(max-width:800px)').matches)return 2;\n      return 3;\n    }\n\n    function pageStarts(){\n      var total=track.querySelectorAll('.interdata-plan-card').length;\n      var visible=Math.min(visibleCards(),total||1);\n      var maxStart=Math.max(0,total-visible);\n      var starts=[];\n      var start=0;\n      while(start<maxStart){\n        starts.push(start);\n        start+=visible;\n      }\n      if(!starts.length||starts[starts.length-1]!==maxStart)starts.push(maxStart);\n      return starts;\n    }\n\n    function renderSlide(animate){\n      var cards=track.querySelectorAll('.interdata-plan-card');\n      var starts=pageStarts();\n      if(!cards.length||!starts.length)return;\n      if(activePage>=starts.length)activePage=starts.length-1;\n      if(activePage<0)activePage=0;\n\n      var cardWidth=cards[0].getBoundingClientRect().width;\n      var trackStyle=window.getComputedStyle?window.getComputedStyle(track):null;\n      var gap=trackStyle?parseFloat(trackStyle.columnGap||trackStyle.gap):12;\n      if(!Number.isFinite(gap))gap=12;\n      if(cardWidth<=0)return;\n\n      track.style.transition=animate?'transform .45s ease':'none';\n      track.style.transform='translate3d('+(-(cardWidth+gap)*starts[activePage])+'px,0,0)';\n      prev.setAttribute('aria-disabled',starts.length>1?'false':'true');\n      next.setAttribute('aria-disabled',starts.length>1?'false':'true');\n    }\n\n    function move(direction){\n      var starts=pageStarts();\n      if(starts.length<=1)return;\n      activePage=parseInt(root.getAttribute('data-inline-page')||activePage,10)||0;\n      activePage=(activePage+direction+starts.length)%starts.length;\n      root.setAttribute('data-inline-page',activePage);\n      renderSlide(true);\n    }\n\n    track.addEventListener('touchstart',function(event){\n      touchStartX=event.touches&&event.touches[0]?event.touches[0].clientX:null;\n    },{passive:true});\n    track.addEventListener('touchend',function(event){\n      if(touchStartX===null)return;\n      var endX=event.changedTouches&&event.changedTouches[0]?event.changedTouches[0].clientX:touchStartX;\n      var distance=endX-touchStartX;\n      touchStartX=null;\n      if(Math.abs(distance)>=40)move(distance<0?1:-1);\n    },{passive:true});\n\n    function resetAfterResize(){\n      activePage=0;\n      root.setAttribute('data-inline-page','0');\n      renderSlide(false);\n    }\n\n    window.addEventListener('resize',resetAfterResize);\n    window.addEventListener('load',resetAfterResize);\n    if('ResizeObserver' in window){\n      var resizeObserver=new ResizeObserver(function(){renderSlide(false);});\n      resizeObserver.observe(root);\n    }\n    window.requestAnimationFrame(function(){renderSlide(false);});\n    window.setTimeout(function(){renderSlide(false);},250);\n    window.setTimeout(function(){renderSlide(false);},1000);\n\n    fetchPlanData().then(function(products){\n      products.forEach(function(product){updateCardFromApi(root,product);});\n      renderSlide(false);\n    });\n  }\n\n  function initInterDataCarousels(){\n    document.querySelectorAll('[data-interdata-carousel]').forEach(setupInterDataCarousel);\n  }\n\n  if(document.readyState==='loading'){\n    document.addEventListener('DOMContentLoaded',initInterDataCarousels);\n  }else{\n    initInterDataCarousels();\n  }\n\n  if('MutationObserver' in window){\n    var initQueued=false;\n    new MutationObserver(function(){\n      if(initQueued)return;\n      initQueued=true;\n      window.requestAnimationFrame(function(){\n        initQueued=false;\n        initInterDataCarousels();\n      });\n    }).observe(document.documentElement,{childList:true,subtree:true});\n  }\n})();\n<\/script>\n\n\t<div id=\"gap-1998968220\" class=\"gap-element clearfix\" style=\"display:block; height:auto;\">\n\t\t\n<style>\n#gap-1998968220 {\n  padding-top: 15px;\n}\n<\/style>\n\t<\/div>\n\t\n<h2 id=\"section1\" style=\"color: #1e3a8a; font-size: 24px; font-weight: bold; text-align: left; border-left: 5px solid #2563EB; padding-left: 15px; margin: 40px 0 20px; line-height: 1.4;\">Inode l\u00e0 g\u00ec? V\u00ec sao \u0111\u1ea7y inode l\u1ea1i g\u00e2y l\u1ed7i?<\/h2>\n<p style=\"text-align: justify;\">Inode (index node) l\u00e0 c\u1ea5u tr\u00fac d\u1eef li\u1ec7u m\u00e0 filesystem d\u00f9ng \u0111\u1ec3 l\u01b0u metadata c\u1ee7a m\u1ed7i file ho\u1eb7c th\u01b0 m\u1ee5c: quy\u1ec1n truy c\u1eadp, ch\u1ee7 s\u1edf h\u1eefu, k\u00edch th\u01b0\u1edbc, th\u1eddi gian t\u1ea1o\/s\u1eeda v\u00e0 con tr\u1ecf \u0111\u1ebfn c\u00e1c block d\u1eef li\u1ec7u tr\u00ean \u0111\u0129a. M\u1ed7i file ho\u1eb7c th\u01b0 m\u1ee5c b\u1ea1n t\u1ea1o ra ti\u00eau t\u1ed1n \u0111\u00fang m\u1ed9t inode, b\u1ea5t k\u1ec3 file n\u1eb7ng 1 KB hay 100 MB. Khi filesystem \u0111\u01b0\u1ee3c format, s\u1ed1 l\u01b0\u1ee3ng inode \u0111\u00e3 \u0111\u01b0\u1ee3c c\u1ed1 \u0111\u1ecbnh. B\u1ea1n kh\u00f4ng th\u1ec3 th\u00eam inode v\u00e0o m\u1ed9t ph\u00e2n v\u00f9ng ext4 \u0111ang ch\u1ea1y m\u00e0 kh\u00f4ng format l\u1ea1i.<\/p>\n<p style=\"text-align: justify;\">V\u00ec v\u1eady m\u1edbi c\u00f3 chuy\u1ec7n \u1ed5 c\u1ee9ng c\u00f2n tr\u1ed1ng nh\u01b0ng kh\u00f4ng t\u1ea1o \u0111\u01b0\u1ee3c file. <code>df -h<\/code> \u0111o dung l\u01b0\u1ee3ng block, c\u00f2n <code>df -i<\/code> \u0111o s\u1ed1 l\u01b0\u1ee3ng inode. M\u1ed9t th\u01b0 m\u1ee5c ch\u1ee9a h\u00e0ng tri\u1ec7u file session nh\u1ecf v\u00e0i ch\u1ee5c byte c\u00f3 th\u1ec3 chi\u1ebfm ch\u01b0a \u0111\u1ebfn 1 GB nh\u01b0ng \u0111\u00e3 ng\u1ed1n s\u1ea1ch inode c\u1ee7a ph\u00e2n v\u00f9ng. Kernel tr\u1ea3 v\u1ec1 l\u1ed7i <code>No space left on device<\/code> d\u00f9 <code>df -h<\/code> v\u1eabn b\u00e1o c\u00f2n tr\u1ed1ng.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-43681\" src=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/09\/inode-la-gi.jpg\" alt=\"inode l\u00e0 g\u00ec\" width=\"600\" height=\"401\" title=\"\" srcset=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/09\/inode-la-gi.jpg 1050w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/09\/inode-la-gi-300x200.jpg 300w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/09\/inode-la-gi-1024x684.jpg 1024w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/09\/inode-la-gi-768x513.jpg 768w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<p style=\"text-align: justify;\">C\u1ea7n ph\u00e2n bi\u1ec7t full disk v\u00e0 full inode. Full disk l\u00e0 h\u1ebft dung l\u01b0\u1ee3ng block; b\u1ea1n x\u00f3a file l\u1edbn l\u00e0 gi\u1ea3i ph\u00f3ng \u0111\u01b0\u1ee3c. Full inode l\u00e0 h\u1ebft slot metadata; b\u1ea1n ph\u1ea3i x\u00f3a nhi\u1ec1u file nh\u1ecf, c\u00f3 khi h\u00e0ng tr\u0103m ngh\u00ecn \u0111\u1ebfn h\u00e0ng tri\u1ec7u file. N\u1ebfu ch\u01b0a quen qu\u1ea3n tr\u1ecb VPS qua d\u00f2ng l\u1ec7nh, b\u1ea1n c\u00f3 th\u1ec3 xem <a href=\"https:\/\/interdata.vn\/blog\/huong-dan-su-dung-vps\/\" target=\"_blank\" rel=\"noopener\">t\u00e0i li\u1ec7u h\u01b0\u1edbng d\u1eabn s\u1eed d\u1ee5ng VPS<\/a> tr\u01b0\u1edbc khi th\u1ef1c h\u00e0nh ph\u1ea7n d\u1ecdn inode b\u00ean d\u01b0\u1edbi. Tr\u01b0\u1eddng h\u1ee3p full disk thu\u1ea7n t\u00fay, t\u1ee9c block h\u1ebft nh\u01b0ng inode v\u1eabn tho\u1ea3i m\u00e1i, \u0111\u01b0\u1ee3c x\u1eed l\u00fd theo quy tr\u00ecnh kh\u00e1c. B\u1ea1n xem b\u00e0i <a href=\"https:\/\/interdata.vn\/blog\/cach-xu-ly-loi-vps-bi-full-disk\/\" target=\"_blank\" rel=\"noopener\">x\u1eed l\u00fd l\u1ed7i VPS b\u1ecb full disk<\/a> \u0111\u1ec3 so s\u00e1nh.<\/p>\n<div style=\"display: flex; flex-wrap: wrap; background-color: #fff; border: 1.5px solid #BFDBFE; box-shadow: 0 8px 20px rgba(37,99,235,0.08); border-radius: 12px; overflow: hidden; margin: 35px 0;\">\n<div style=\"flex: 1; min-width: 250px; background: linear-gradient(135deg, #1E3A8A 0%, #2563EB 100%); display: flex; align-items: center; justify-content: center; padding: 30px; text-align: center;\">\n<div>\n<p style=\"color: #fff; font-size: 34px; font-family: 'Be Vietnam Pro', sans-serif; font-weight: bold; margin: 0; line-height: 1.1;\">VPS InterData<\/p>\n<p style=\"color: #dbeafe; font-size: 15px; font-weight: 600; margin-top: 12px;\">Filesystem l\u1edbn \u2013 Inode tho\u1ea3i m\u00e1i \u2013 Root to\u00e0n quy\u1ec1n<\/p>\n<\/div>\n<\/div>\n<div style=\"flex: 2; padding: 25px; min-width: 300px;\">\n<h3 style=\"font-family: 'Be Vietnam Pro', sans-serif; color: #1e3a8a; margin-top: 0; font-size: 20px;\">VPS c\u1ea5u h\u00ecnh th\u1ea5p d\u1ec5 h\u1ebft inode ch\u1ec9 sau v\u00e0i th\u00e1ng?<\/h3>\n<p style=\"text-align: justify; font-size: 15px; margin-bottom: 15px;\">\u0110\u1eebng \u0111\u1ec3 website s\u1eadp v\u00ec filesystem b\u00e9. VPS InterData c\u1ea5p <strong>root \u0111\u1ea7y \u0111\u1ee7<\/strong> tr\u00ean SSD NVMe U.2, CPU th\u1ebf h\u1ec7 m\u1edbi \u2013 b\u1ea1n ch\u1ea1y ngay <code>df -i<\/code>, <code>find<\/code>, c\u1ea5u h\u00ecnh logrotate \u0111\u1ec3 ki\u1ec3m so\u00e1t inode ngay t\u1eeb \u0111\u1ea7u:<\/p>\n<ul style=\"font-size: 14px; color: #374151; margin: 0 0 18px; padding-left: 20px;\">\n<li>Filesystem ph\u00e2n b\u1ed5 inode r\u1ed9ng, kh\u00f4ng lo h\u1ebft slot metadata<\/li>\n<li>To\u00e0n quy\u1ec1n root \u2013 ch\u1ea1y m\u1ecdi l\u1ec7nh trong b\u00e0i kh\u00f4ng gi\u1edbi h\u1ea1n<\/li>\n<li>H\u1ed7 tr\u1ee3 k\u1ef9 thu\u1eadt 24\/7 khi b\u1ea1n c\u1ea7n g\u1ee1 l\u1ed7i kh\u1ea9n<\/li>\n<\/ul>\n<p><a style=\"background: linear-gradient(90deg, #2563EB 0%, #1E3A8A 100%); color: #fff; padding: 14px 28px; text-decoration: none; font-weight: bold; border-radius: 8px; font-size: 15px; display: inline-block; box-shadow: 0 5px 15px rgba(37,99,235,0.3);\" href=\"https:\/\/interdata.vn\/thue-vps\/\" target=\"_blank\" rel=\"noopener\">Xem B\u1ea3ng Gi\u00e1 Thu\u00ea VPS \u27f6<\/a><\/p>\n<p style=\"font-size: 13px; color: #6b7280; margin: 12px 0 0;\">K\u00edch ho\u1ea1t trong 5 ph\u00fat \u2013 Kh\u00f4ng ph\u00ed \u1ea9n \u2013 Ho\u00e0n ti\u1ec1n 7 ng\u00e0y<\/p>\n<\/div>\n<\/div>\n<h2 id=\"section2\" style=\"color: #1e3a8a; font-size: 24px; font-weight: bold; text-align: left; border-left: 5px solid #2563EB; padding-left: 15px; margin: 40px 0 20px; line-height: 1.4;\">C\u00e1ch ki\u1ec3m tra v\u00e0 ch\u1ea9n \u0111o\u00e1n inode b\u1ecb \u0111\u1ea7y<\/h2>\n<p style=\"text-align: justify;\">B\u1ea1n c\u1ea7n k\u1ebft n\u1ed1i SSH v\u00e0o server v\u1edbi quy\u1ec1n root ho\u1eb7c user c\u00f3 sudo. N\u1ebfu ch\u01b0a quen thao t\u00e1c k\u1ebft n\u1ed1i, b\u00e0i <a href=\"https:\/\/interdata.vn\/blog\/cach-dang-nhap-vps-tren-may-tinh\/\">\u0111\u0103ng nh\u1eadp VPS qua SSH<\/a> tr\u00ean Windows, macOS v\u00e0 Linux s\u1ebd gi\u00fap b\u1ea1n thi\u1ebft l\u1eadp phi\u00ean l\u00e0m vi\u1ec7c tr\u01b0\u1edbc khi ch\u1ea1y c\u00e1c l\u1ec7nh b\u00ean d\u01b0\u1edbi.<\/p>\n<h3 style=\"color: #1e3a8a; font-size: 20px; font-weight: 600; margin: 25px 0 15px;\">B\u01b0\u1edbc 1: Ki\u1ec3m tra t\u1ed5ng quan inode b\u1eb1ng df -i<\/h3>\n<p style=\"text-align: justify;\">L\u1ec7nh <code>df -i<\/code> hi\u1ec3n th\u1ecb s\u1ed1 inode \u0111\u00e3 d\u00f9ng, c\u00f2n tr\u1ed1ng v\u00e0 ph\u1ea7n tr\u0103m s\u1eed d\u1ee5ng cho t\u1eebng ph\u00e2n v\u00f9ng. \u0110\u00e2y l\u00e0 l\u1ec7nh \u0111\u1ea7u ti\u00ean b\u1ea1n n\u00ean ch\u1ea1y khi nghi ng\u1edd full inode.<\/p>\n<pre><code class=\"language-bash\">df -i -h<\/code><\/pre>\n<p style=\"text-align: justify;\">K\u1ebft qu\u1ea3 tr\u1ea3 v\u1ec1 c\u00f3 d\u1ea1ng:<\/p>\n<pre><code class=\"language-bash\">Filesystem      Inodes  IUsed   IFree IUse% Mounted on\r\n\/dev\/vda1      2621440 2621440       0  100% \/\r\ntmpfs           502344      12  502332    1% \/dev\/shm<\/code><\/pre>\n<p style=\"text-align: justify;\">C\u1ed9t <code>IUse%<\/code> cho bi\u1ebft m\u1ee9c s\u1eed d\u1ee5ng inode. Khi gi\u00e1 tr\u1ecb n\u00e0y \u0111\u1ea1t <strong>100%<\/strong> ho\u1eb7c g\u1ea7n <strong>95%<\/strong>, b\u1ea1n c\u1ea7n d\u1ecdn ngay. C\u1ed9t <code>IFree<\/code> b\u1eb1ng 0 l\u00e0 d\u1ea5u hi\u1ec7u r\u00f5 r\u00e0ng nh\u1ea5t r\u1eb1ng filesystem \u0111\u00e3 h\u1ebft inode. So s\u00e1nh v\u1edbi <code>df -h<\/code> c\u00f9ng ph\u00e2n v\u00f9ng: n\u1ebfu dung l\u01b0\u1ee3ng block v\u1eabn c\u00f2n nhi\u1ec1u GB nh\u01b0ng inode \u0111\u00e3 100%, b\u1ea1n \u0111ang \u0111\u1ed1i m\u1eb7t v\u1edbi full inode thu\u1ea7n t\u00fay, kh\u00f4ng ph\u1ea3i full disk.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-43682\" src=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/09\/Kiem-tra-tong-quan-inode-bang-df-i.jpg\" alt=\"Ki\u1ec3m tra t\u1ed5ng quan inode b\u1eb1ng df -i\" width=\"600\" height=\"401\" title=\"\" srcset=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/09\/Kiem-tra-tong-quan-inode-bang-df-i.jpg 1050w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/09\/Kiem-tra-tong-quan-inode-bang-df-i-300x200.jpg 300w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/09\/Kiem-tra-tong-quan-inode-bang-df-i-1024x684.jpg 1024w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/09\/Kiem-tra-tong-quan-inode-bang-df-i-768x513.jpg 768w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<h3 style=\"color: #1e3a8a; font-size: 20px; font-weight: 600; margin: 25px 0 15px;\">B\u01b0\u1edbc 2: X\u00e1c \u0111\u1ecbnh th\u01b0 m\u1ee5c chi\u1ebfm nhi\u1ec1u inode nh\u1ea5t<\/h3>\n<p style=\"text-align: justify;\">Sau khi x\u00e1c nh\u1eadn ph\u00e2n v\u00f9ng n\u00e0o \u0111\u1ea7y inode, b\u1ea1n c\u1ea7n t\u00ecm th\u01b0 m\u1ee5c n\u00e0o \u0111ang ch\u1ee9a l\u01b0\u1ee3ng file l\u1edbn nh\u1ea5t. C\u00f3 hai c\u00e1ch ti\u1ebfp c\u1eadn: \u0111\u1ebfm s\u1ed1 file trong t\u1eebng th\u01b0 m\u1ee5c c\u1ea5p m\u1ed9t, ho\u1eb7c d\u00f9ng <code>du --inodes<\/code> \u0111\u1ec3 li\u1ec7t k\u00ea tr\u1ef1c ti\u1ebfp theo s\u1ed1 inode ti\u00eau th\u1ee5.<\/p>\n<p style=\"text-align: justify;\"><strong>C\u00e1ch 1: \u0110\u1ebfm file trong t\u1eebng th\u01b0 m\u1ee5c g\u1ed1c<\/strong><\/p>\n<pre><code class=\"language-bash\">for d in \/*; do\r\n  echo -n \"$d: \"\r\n  find \"$d\" -xdev -type f 2&gt;\/dev\/null | wc -l\r\ndone<\/code><\/pre>\n<p style=\"text-align: justify;\">L\u1ec7nh n\u00e0y duy\u1ec7t t\u1eebng th\u01b0 m\u1ee5c c\u1ea5p m\u1ed9t d\u01b0\u1edbi root, \u0111\u1ebfm s\u1ed1 file b\u00ean trong v\u00e0 in ra k\u1ebft qu\u1ea3. Th\u01b0 m\u1ee5c c\u00f3 s\u1ed1 l\u01b0\u1ee3ng file l\u1edbn nh\u1ea5t l\u00e0 m\u1ee5c ti\u00eau c\u1ea7n \u0111i\u1ec1u tra ti\u1ebfp. Sau khi x\u00e1c \u0111\u1ecbnh \u0111\u01b0\u1ee3c th\u01b0 m\u1ee5c c\u1ea5p m\u1ed9t, b\u1ea1n l\u1eb7p l\u1ea1i quy tr\u00ecnh v\u1edbi c\u00e1c th\u01b0 m\u1ee5c con b\u00ean trong \u0111\u1ec3 khoanh v\u00f9ng ch\u00ednh x\u00e1c.<\/p>\n<p style=\"text-align: justify;\"><strong>C\u00e1ch 2: D\u00f9ng du &#8211;inodes \u0111\u1ec3 x\u1ebfp h\u1ea1ng<\/strong><\/p>\n<pre><code class=\"language-bash\">du --inodes --max-depth=1 \/ 2&gt;\/dev\/null | sort -n -r | head -20<\/code><\/pre>\n<p style=\"text-align: justify;\">K\u1ebft qu\u1ea3 li\u1ec7t k\u00ea 20 th\u01b0 m\u1ee5c ti\u00eau th\u1ee5 nhi\u1ec1u inode nh\u1ea5t, s\u1eafp x\u1ebfp gi\u1ea3m d\u1ea7n. B\u1ea1n ti\u1ebfp t\u1ee5c ch\u1ea1y l\u1ec7nh n\u00e0y tr\u00ean th\u01b0 m\u1ee5c \u0111\u1ee9ng \u0111\u1ea7u \u0111\u1ec3 \u0111i s\u00e2u v\u00e0o c\u00e1c c\u1ea5p con.<\/p>\n<p style=\"text-align: justify;\"><strong>C\u00e1ch 3: T\u00ecm nhanh th\u01b0 m\u1ee5c ch\u1ee9a nhi\u1ec1u file trong m\u1ed9t c\u00e2y c\u1ee5 th\u1ec3<\/strong><\/p>\n<pre><code class=\"language-bash\">find \/var -xdev -type d -exec sh -c \\\r\n  'echo \"$(find \"$1\" -maxdepth 1 -type f | wc -l) $1\"' _ {} \\; 2&gt;\/dev\/null \\\r\n  | sort -rn | head -20<\/code><\/pre>\n<p style=\"text-align: justify;\">L\u1ec7nh n\u00e0y \u0111\u1ebfm s\u1ed1 file tr\u1ef1c ti\u1ebfp b\u00ean trong m\u1ed7i th\u01b0 m\u1ee5c con c\u1ee7a <code>\/var<\/code>, gi\u00fap b\u1ea1n ph\u00e1t hi\u1ec7n nhanh th\u01b0 m\u1ee5c n\u00e0o \u0111ang ph\u00ecnh to b\u1ea5t th\u01b0\u1eddng m\u00e0 kh\u00f4ng c\u1ea7n duy\u1ec7t to\u00e0n b\u1ed9 filesystem.<\/p>\n<h2 id=\"section3\" style=\"color: #1e3a8a; font-size: 24px; font-weight: bold; text-align: left; border-left: 5px solid #2563EB; padding-left: 15px; margin: 40px 0 20px; line-height: 1.4;\">X\u1eed l\u00fd theo t\u1eebng nguy\u00ean nh\u00e2n<\/h2>\n<p style=\"text-align: justify;\">M\u1ed7i ngu\u1ed3n g\u00e2y full inode c\u00f3 \u0111\u1eb7c \u0111i\u1ec3m nh\u1eadn d\u1ea1ng v\u00e0 c\u00e1ch d\u1ecdn ri\u00eang. X\u00f3a sai th\u01b0 m\u1ee5c c\u00f3 th\u1ec3 l\u00e0m h\u1ecfng \u1ee9ng d\u1ee5ng, n\u00ean b\u1ea1n c\u1ea7n x\u00e1c \u0111\u1ecbnh \u0111\u00fang nguy\u00ean nh\u00e2n tr\u01b0\u1edbc khi ch\u1ea1y l\u1ec7nh x\u00f3a.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-43683\" src=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/09\/Xu-ly-inode-bi-day.jpg\" alt=\"X\u1eed l\u00fd inode b\u1ecb \u0111\u1ea7y\" width=\"600\" height=\"401\" title=\"\" srcset=\"https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/09\/Xu-ly-inode-bi-day.jpg 1050w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/09\/Xu-ly-inode-bi-day-300x200.jpg 300w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/09\/Xu-ly-inode-bi-day-1024x684.jpg 1024w, https:\/\/interdata.vn\/blog\/wp-content\/uploads\/2026\/09\/Xu-ly-inode-bi-day-768x513.jpg 768w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<h3 style=\"color: #1e3a8a; font-size: 20px; font-weight: 600; margin: 25px 0 15px;\">1. File session PHP t\u00edch t\u1ee5 trong \/var\/lib\/php\/sessions<\/h3>\n<p style=\"text-align: justify;\">\u0110\u00e2y l\u00e0 nguy\u00ean nh\u00e2n ph\u1ed5 bi\u1ebfn nh\u1ea5t tr\u00ean c\u00e1c server ch\u1ea1y PHP-FPM. M\u1ed7i phi\u00ean truy c\u1eadp t\u1ea1o m\u1ed9t file <code>sess_*<\/code> trong <code>\/var\/lib\/php\/sessions<\/code> (Ubuntu\/Debian) ho\u1eb7c <code>\/var\/lib\/php\/session<\/code> (CentOS\/RHEL). Khi garbage collector c\u1ee7a PHP kh\u00f4ng ch\u1ea1y \u0111\u00fang c\u00e1ch ho\u1eb7c <code>session.gc_probability<\/code> b\u1ecb \u0111\u1eb7t v\u1ec1 0, h\u00e0ng tr\u0103m ngh\u00ecn file session c\u0169 s\u1ebd t\u00edch t\u1ee5 v\u00e0 \u0111\u1ed1t s\u1ea1ch inode.<\/p>\n<p style=\"text-align: justify;\">Ki\u1ec3m tra s\u1ed1 l\u01b0\u1ee3ng file session hi\u1ec7n t\u1ea1i:<\/p>\n<pre><code class=\"language-bash\">find \/var\/lib\/php\/sessions -type f | wc -l<\/code><\/pre>\n<p style=\"text-align: justify;\">X\u00f3a an to\u00e0n c\u00e1c file session c\u0169 h\u01a1n 2 ng\u00e0y, gi\u1eef l\u1ea1i session \u0111ang ho\u1ea1t \u0111\u1ed9ng trong 48 gi\u1edd g\u1ea7n nh\u1ea5t:<\/p>\n<pre><code class=\"language-bash\">find \/var\/lib\/php\/sessions -type f -name 'sess_*' -mtime +2 -delete<\/code><\/pre>\n<p style=\"text-align: justify;\">N\u1ebfu th\u01b0 m\u1ee5c ch\u1ee9a h\u00e0ng tri\u1ec7u file v\u00e0 l\u1ec7nh <code>rm *<\/code> b\u00e1o l\u1ed7i <code>Argument list too long<\/code>, c\u00e1ch tr\u00ean v\u1eabn ho\u1ea1t \u0111\u1ed9ng v\u00ec <code>find -delete<\/code> x\u1eed l\u00fd t\u1eebng file tu\u1ea7n t\u1ef1, kh\u00f4ng b\u1ecb gi\u1edbi h\u1ea1n b\u1edfi shell argument list.<\/p>\n<h3 style=\"color: #1e3a8a; font-size: 20px; font-weight: 600; margin: 25px 0 15px;\">2. File cache WordPress ph\u00ecnh to trong wp-content\/cache<\/h3>\n<p style=\"text-align: justify;\">C\u00e1c plugin cache nh\u01b0 W3 Total Cache, LiteSpeed Cache hay WP Rocket t\u1ea1o ra h\u00e0ng tr\u0103m ngh\u00ecn file nh\u1ecf trong <code>wp-content\/cache<\/code>, <code>wp-content\/cache\/object<\/code> v\u00e0 <code>wp-content\/cache\/page_enhanced<\/code>. C\u01a1 ch\u1ebf page cache l\u01b0u t\u1eebng phi\u00ean b\u1ea3n HTML theo URL, k\u1ebft h\u1ee3p object cache l\u01b0u t\u1eebng key ri\u00eang l\u1ebb. S\u1ed1 file t\u0103ng theo c\u1ea5p s\u1ed1 nh\u00e2n n\u1ebfu kh\u00f4ng c\u00f3 gi\u1edbi h\u1ea1n dung l\u01b0\u1ee3ng cache.<\/p>\n<p style=\"text-align: justify;\">Ki\u1ec3m tra dung l\u01b0\u1ee3ng inode c\u1ee7a th\u01b0 m\u1ee5c cache:<\/p>\n<pre><code class=\"language-bash\">du --inodes -sh \/home\/*\/public_html\/wp-content\/cache\/ 2&gt;\/dev\/null\r\nfind \/home\/*\/public_html\/wp-content\/cache\/ -type f 2&gt;\/dev\/null | wc -l<\/code><\/pre>\n<p style=\"text-align: justify;\">X\u00f3a to\u00e0n b\u1ed9 cache c\u0169 h\u01a1n 7 ng\u00e0y:<\/p>\n<pre><code class=\"language-bash\">find \/home\/*\/public_html\/wp-content\/cache\/ -type f -mtime +7 -delete<\/code><\/pre>\n<p style=\"text-align: justify;\">N\u1ebfu mu\u1ed1n x\u00f3a s\u1ea1ch v\u00e0 \u0111\u1ec3 plugin t\u00e1i t\u1ea1o cache m\u1edbi, d\u00f9ng:<\/p>\n<pre><code class=\"language-bash\">rm -rf \/home\/*\/public_html\/wp-content\/cache\/*<\/code><\/pre>\n<p style=\"text-align: justify;\">Sau khi x\u00f3a cache, truy c\u1eadp l\u1ea1i website \u0111\u1ec3 plugin t\u00e1i t\u1ea1o cache. L\u01b0u \u00fd r\u1eb1ng m\u1ed9t s\u1ed1 plugin c\u00f3 c\u00e0i \u0111\u1eb7t gi\u1edbi h\u1ea1n s\u1ed1 file cache t\u1ed1i \u0111a. B\u1ea1n n\u00ean b\u1eadt t\u00f9y ch\u1ecdn \u0111\u00f3 n\u1ebfu c\u00f3.<\/p>\n<h3 style=\"color: #1e3a8a; font-size: 20px; font-weight: 600; margin: 25px 0 15px;\">3. Mail queue b\u1ecb k\u1eb9t trong \/var\/spool\/postfix<\/h3>\n<p style=\"text-align: justify;\">Postfix t\u1ea1o m\u1ed9t file ri\u00eang cho m\u1ed7i email trong queue. Khi c\u00f3 s\u1ef1 c\u1ed1 g\u1eedi mail, v\u00ed d\u1ee5 script b\u1ecb l\u1ed7i g\u1eedi h\u00e0ng ngh\u00ecn email th\u00f4ng b\u00e1o ho\u1eb7c server b\u1ecb l\u1ee3i d\u1ee5ng \u0111\u1ec3 spam, deferred queue c\u00f3 th\u1ec3 t\u00edch t\u1ee5 h\u00e0ng tr\u0103m ngh\u00ecn file nh\u1ecf. Ph\u00e2n v\u00f9ng ch\u1ee9a <code>\/var\/spool\/postfix<\/code> s\u1ebd h\u1ebft inode tr\u01b0\u1edbc khi h\u1ebft dung l\u01b0\u1ee3ng byte.<\/p>\n<p style=\"text-align: justify;\">Ki\u1ec3m tra s\u1ed1 l\u01b0\u1ee3ng file trong t\u1eebng queue:<\/p>\n<pre><code class=\"language-bash\">for d in maildrop incoming active deferred bounce defer hold corrupt; do\r\n  count=$(find \/var\/spool\/postfix\/$d -type f 2&gt;\/dev\/null | wc -l)\r\n  echo \"$d: $count files\"\r\ndone<\/code><\/pre>\n<p style=\"text-align: justify;\">X\u00f3a c\u00e1c file trong deferred queue c\u0169 h\u01a1n 3 ng\u00e0y. C\u00e1ch n\u00e0y an to\u00e0n cho h\u1ea7u h\u1ebft tr\u01b0\u1eddng h\u1ee3p, v\u00ec mail c\u0169 th\u01b0\u1eddng kh\u00f4ng c\u00f2n gi\u00e1 tr\u1ecb g\u1eedi l\u1ea1i:<\/p>\n<pre><code class=\"language-bash\">find \/var\/spool\/postfix\/deferred -type f -mtime +3 -delete<\/code><\/pre>\n<p style=\"text-align: justify;\">N\u1ebfu mu\u1ed1n x\u00f3a s\u1ea1ch to\u00e0n b\u1ed9 queue \u0111\u1ec3 gi\u1ea3i ph\u00f3ng inode ngay l\u1eadp t\u1ee9c v\u00e0 ch\u1ea5p nh\u1eadn m\u1ea5t c\u00e1c email \u0111ang ch\u1edd, d\u00f9ng:<\/p>\n<pre><code class=\"language-bash\">postsuper -d ALL deferred<\/code><\/pre>\n<p style=\"text-align: justify;\">Sau khi d\u1ecdn queue, ki\u1ec3m tra l\u1ea1i b\u1eb1ng <code>mailq<\/code> \u0111\u1ec3 x\u00e1c nh\u1eadn s\u1ed1 l\u01b0\u1ee3ng email \u0111\u00e3 gi\u1ea3m.<\/p>\n<h3 style=\"color: #1e3a8a; font-size: 20px; font-weight: 600; margin: 25px 0 15px;\">4. Log h\u1ec7 th\u1ed1ng trong \/var\/log kh\u00f4ng \u0111\u01b0\u1ee3c xoay v\u00f2ng<\/h3>\n<p style=\"text-align: justify;\">Khi logrotate b\u1ecb l\u1ed7i c\u1ea5u h\u00ecnh ho\u1eb7c kh\u00f4ng ch\u1ea1y, c\u00e1c file log nh\u01b0 <code>syslog<\/code>, <code>auth.log<\/code>, <code>messages<\/code> c\u00f3 th\u1ec3 ph\u00ecnh to. Nghi\u00eam tr\u1ecdng h\u01a1n, systemd journal trong <code>\/var\/log\/journal<\/code> l\u01b0u t\u1eebng entry d\u01b0\u1edbi d\u1ea1ng file ri\u00eang, v\u00e0 h\u00e0ng tri\u1ec7u file journal nh\u1ecf s\u1ebd \u0111\u1ed1t s\u1ea1ch inode nhanh ch\u00f3ng.<\/p>\n<p style=\"text-align: justify;\">Ki\u1ec3m tra dung l\u01b0\u1ee3ng v\u00e0 s\u1ed1 file trong \/var\/log:<\/p>\n<pre><code class=\"language-bash\">du --inodes -sh \/var\/log\/*\r\njournalctl --disk-usage<\/code><\/pre>\n<p style=\"text-align: justify;\">Gi\u1edbi h\u1ea1n journal systemd ch\u1ec9 gi\u1eef log trong 7 ng\u00e0y g\u1ea7n nh\u1ea5t v\u00e0 t\u1ed1i \u0111a 500 MB:<\/p>\n<pre><code class=\"language-bash\">journalctl --vacuum-time=7d\r\njournalctl --vacuum-size=500M<\/code><\/pre>\n<p style=\"text-align: justify;\">L\u1ec7nh <code>journalctl --vacuum-size<\/code> ch\u1ec9 x\u00f3a c\u00e1c file journal \u0111\u00e3 archive, kh\u00f4ng \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn journal \u0111ang ho\u1ea1t \u0111\u1ed9ng, n\u00ean an to\u00e0n \u0111\u1ec3 ch\u1ea1y tr\u00ean server production.<\/p>\n<p style=\"text-align: justify;\">X\u00f3a c\u00e1c file log c\u0169 h\u01a1n 30 ng\u00e0y trong <code>\/var\/log<\/code>, tr\u1eeb c\u00e1c file \u0111ang \u0111\u01b0\u1ee3c ghi:<\/p>\n<pre><code class=\"language-bash\">find \/var\/log -type f \\( -name \"*.log.*\" -o -name \"*.gz\" -o -name \"*.old\" \\) -mtime +30 -delete<\/code><\/pre>\n<p style=\"text-align: justify;\">Sau khi d\u1ecdn log, b\u1ea1n n\u00ean thi\u1ebft l\u1eadp <a href=\"https:\/\/interdata.vn\/blog\/cach-gioi-han-dung-luong-file-log-tren-vps\/\" target=\"_blank\" rel=\"noopener\">c\u1ea5u h\u00ecnh Logrotate \u0111\u1ec3 t\u1ef1 \u0111\u1ed9ng xoay v\u00f2ng log<\/a> nh\u1eb1m ng\u0103n v\u1ea5n \u0111\u1ec1 t\u00e1i di\u1ec5n.<\/p>\n<h3 style=\"color: #1e3a8a; font-size: 20px; font-weight: 600; margin: 25px 0 15px;\">5. File t\u1ea1m trong \/tmp v\u00e0 systemd-private<\/h3>\n<p style=\"text-align: justify;\">Th\u01b0 m\u1ee5c <code>\/tmp<\/code> v\u00e0 c\u00e1c th\u01b0 m\u1ee5c con <code>\/tmp\/systemd-private-*<\/code> ch\u1ee9a file t\u1ea1m t\u1eeb c\u00e1c d\u1ecbch v\u1ee5 h\u1ec7 th\u1ed1ng. M\u1ed9t s\u1ed1 \u1ee9ng d\u1ee5ng kh\u00f4ng t\u1ef1 d\u1ecdn file t\u1ea1m, d\u1eabn \u0111\u1ebfn t\u00edch t\u1ee5 h\u00e0ng tr\u0103m ngh\u00ecn file r\u00e1c theo th\u1eddi gian. Tr\u00ean c\u00e1c server ch\u1ea1y nhi\u1ec1u phi\u00ean b\u1ea3n PHP kh\u00e1c nhau, m\u1ed7i phi\u00ean b\u1ea3n c\u00f3 th\u1ec3 ghi session v\u00e0o m\u1ed9t th\u01b0 m\u1ee5c <code>\/tmp\/systemd-private-*\/tmp\/<\/code> ri\u00eang.<\/p>\n<p style=\"text-align: justify;\">Li\u1ec7t k\u00ea c\u00e1c file t\u1ea1m c\u0169 h\u01a1n 3 ng\u00e0y:<\/p>\n<pre><code class=\"language-bash\">find \/tmp -type f -mtime +3 2&gt;\/dev\/null | wc -l<\/code><\/pre>\n<p style=\"text-align: justify;\">X\u00f3a file t\u1ea1m c\u0169 h\u01a1n 3 ng\u00e0y trong \/tmp, kh\u00f4ng x\u00f3a th\u01b0 m\u1ee5c systemd-private \u0111\u1ec3 tr\u00e1nh \u1ea3nh h\u01b0\u1edfng d\u1ecbch v\u1ee5 \u0111ang ch\u1ea1y:<\/p>\n<pre><code class=\"language-bash\">find \/tmp -maxdepth 1 -type f -mtime +3 -delete<\/code><\/pre>\n<p style=\"text-align: justify;\">D\u1ecdn file session trong c\u00e1c th\u01b0 m\u1ee5c systemd-private:<\/p>\n<pre><code class=\"language-bash\">find \/tmp\/systemd-private-*\/tmp\/ -type f -name 'sess_*' -mtime +2 -delete 2&gt;\/dev\/null<\/code><\/pre>\n<h3 style=\"color: #1e3a8a; font-size: 20px; font-weight: 600; margin: 25px 0 15px;\">Ngu\u1ed3n g\u00e2y \u0111\u1ea7y inode v\u00e0 c\u00e1ch x\u1eed l\u00fd<\/h3>\n<table style=\"width: 100%; border-collapse: collapse; margin: 20px 0; font-size: 14px;\">\n<thead>\n<tr style=\"background-color: #1e3a8a; color: #fff;\">\n<th style=\"padding: 12px; text-align: left; border: 1px solid #BFDBFE;\">Ngu\u1ed3n g\u00e2y ra<\/th>\n<th style=\"padding: 12px; text-align: left; border: 1px solid #BFDBFE;\">Th\u01b0 m\u1ee5c th\u01b0\u1eddng g\u1eb7p<\/th>\n<th style=\"padding: 12px; text-align: left; border: 1px solid #BFDBFE;\">L\u1ec7nh ki\u1ec3m tra nhanh<\/th>\n<th style=\"padding: 12px; text-align: left; border: 1px solid #BFDBFE;\">C\u00e1ch x\u1eed l\u00fd<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr style=\"background-color: #f8fafc;\">\n<td style=\"padding: 10px; border: 1px solid #E2E8F0;\">PHP session<\/td>\n<td style=\"padding: 10px; border: 1px solid #E2E8F0;\"><code>\/var\/lib\/php\/sessions<\/code><\/td>\n<td style=\"padding: 10px; border: 1px solid #E2E8F0;\"><code>find \/var\/lib\/php\/sessions -type f | wc -l<\/code><\/td>\n<td style=\"padding: 10px; border: 1px solid #E2E8F0;\"><code>find ... -mtime +2 -delete<\/code> + t\u0103ng <code>session.gc_probability<\/code><\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 10px; border: 1px solid #E2E8F0;\">WordPress cache<\/td>\n<td style=\"padding: 10px; border: 1px solid #E2E8F0;\"><code>wp-content\/cache\/<\/code><\/td>\n<td style=\"padding: 10px; border: 1px solid #E2E8F0;\"><code>du --inodes -sh wp-content\/cache\/<\/code><\/td>\n<td style=\"padding: 10px; border: 1px solid #E2E8F0;\"><code>find ... -mtime +7 -delete<\/code> + gi\u1edbi h\u1ea1n cache trong plugin<\/td>\n<\/tr>\n<tr style=\"background-color: #f8fafc;\">\n<td style=\"padding: 10px; border: 1px solid #E2E8F0;\">Mail queue<\/td>\n<td style=\"padding: 10px; border: 1px solid #E2E8F0;\"><code>\/var\/spool\/postfix\/deferred<\/code><\/td>\n<td style=\"padding: 10px; border: 1px solid #E2E8F0;\"><code>find \/var\/spool\/postfix\/deferred -type f | wc -l<\/code><\/td>\n<td style=\"padding: 10px; border: 1px solid #E2E8F0;\"><code>postsuper -d ALL deferred<\/code> ho\u1eb7c x\u00f3a file c\u0169 h\u01a1n 3 ng\u00e0y<\/td>\n<\/tr>\n<tr>\n<td style=\"padding: 10px; border: 1px solid #E2E8F0;\">Log h\u1ec7 th\u1ed1ng<\/td>\n<td style=\"padding: 10px; border: 1px solid #E2E8F0;\"><code>\/var\/log<\/code>, <code>\/var\/log\/journal<\/code><\/td>\n<td style=\"padding: 10px; border: 1px solid #E2E8F0;\"><code>journalctl --disk-usage<\/code><\/td>\n<td style=\"padding: 10px; border: 1px solid #E2E8F0;\"><code>journalctl --vacuum-size=500M<\/code> + logrotate<\/td>\n<\/tr>\n<tr style=\"background-color: #f8fafc;\">\n<td style=\"padding: 10px; border: 1px solid #E2E8F0;\">File t\u1ea1m<\/td>\n<td style=\"padding: 10px; border: 1px solid #E2E8F0;\"><code>\/tmp<\/code>, <code>\/tmp\/systemd-private-*\/tmp\/<\/code><\/td>\n<td style=\"padding: 10px; border: 1px solid #E2E8F0;\"><code>find \/tmp -type f -mtime +3 | wc -l<\/code><\/td>\n<td style=\"padding: 10px; border: 1px solid #E2E8F0;\"><code>find \/tmp -maxdepth 1 -type f -mtime +3 -delete<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div style=\"background: linear-gradient(135deg, #EFF6FF 0%, #DBEAFE 100%); border: 1.5px solid #2563EB; border-radius: 12px; padding: 28px; margin: 35px 0; text-align: center;\">\n<p style=\"font-family: 'Be Vietnam Pro', sans-serif; font-size: 22px; font-weight: bold; color: #1e3a8a; margin: 0 0 8px;\">D\u1ecdn inode xong r\u1ed3i nh\u01b0ng th\u00e1ng sau c\u00f3 l\u1eb7p l\u1ea1i?<\/p>\n<p style=\"font-size: 15px; color: #4b5563; margin-bottom: 20px;\">\u0110\u1eebng \u0111\u1ec3 m\u1ea5t th\u00eam v\u00e0i ti\u1ebfng g\u1ee1 l\u1ed7i 500 l\u00fac n\u1eeda \u0111\u00eam. <strong>Canh Me<\/strong> t\u1ed5ng h\u1ee3p khuy\u1ebfn m\u00e3i, m\u00e3 gi\u1ea3m gi\u00e1 v\u00e0 Hot Deals VPS\/Cloud Server m\u1edbi nh\u1ea5t t\u1eeb InterData \u2013 ch\u1ecdn c\u1ea5u h\u00ecnh \u0111\u1ee7 l\u1edbn \u0111\u1ec3 kh\u00f4ng ch\u1ea1m tr\u1ea7n inode, v\u1edbi chi ph\u00ed ti\u1ebft ki\u1ec7m.<\/p>\n<div style=\"display: flex; flex-wrap: wrap; gap: 15px; justify-content: center; margin-bottom: 20px;\"><span style=\"background: #fff; border: 1px solid #BFDBFE; padding: 8px 16px; border-radius: 20px; font-size: 14px; color: #1e3a8a; font-weight: 600;\">Ti\u1ebft ki\u1ec7m 30\u201350%<\/span><br \/>\n<span style=\"background: #fff; border: 1px solid #BFDBFE; padding: 8px 16px; border-radius: 20px; font-size: 14px; color: #1e3a8a; font-weight: 600;\">C\u1eadp nh\u1eadt h\u00e0ng ng\u00e0y<\/span><br \/>\n<span style=\"background: #fff; border: 1px solid #BFDBFE; padding: 8px 16px; border-radius: 20px; font-size: 14px; color: #1e3a8a; font-weight: 600;\">Ch\u1ecdn \u0111\u00fang c\u1ea5u h\u00ecnh<\/span><\/div>\n<p><a style=\"background: #2563EB; color: #fff; padding: 14px 32px; text-decoration: none; font-weight: bold; border-radius: 8px; display: inline-block; font-size: 16px; box-shadow: 0 5px 15px rgba(37,99,235,0.3);\" href=\"https:\/\/interdata.vn\/canhme\/\" target=\"_blank\" rel=\"noopener\">S\u0103n \u01afu \u0110\u00e3i VPS T\u1ea1i Canh Me \u27f6<\/a><\/p>\n<p style=\"font-size: 13px; color: #6b7280; margin: 12px 0 0;\">C\u1eadp nh\u1eadt li\u00ean t\u1ee5c \u2013 Kh\u00f4ng c\u1ea7n \u0111\u0103ng k\u00fd \u2013 Xem l\u00e0 ch\u1ecdn \u0111\u01b0\u1ee3c ngay<\/p>\n<\/div>\n<h2 id=\"section4\" style=\"color: #1e3a8a; font-size: 24px; font-weight: bold; text-align: left; border-left: 5px solid #2563EB; padding-left: 15px; margin: 40px 0 20px; line-height: 1.4;\">X\u1eed l\u00fd tr\u00ean control panel ph\u1ed5 bi\u1ebfn<\/h2>\n<p style=\"text-align: justify;\">M\u1ed7i control panel c\u00f3 \u0111\u01b0\u1eddng d\u1eabn session v\u00e0 c\u01a1 ch\u1ebf qu\u1ea3n l\u00fd inode ri\u00eang. D\u01b0\u1edbi \u0111\u00e2y l\u00e0 c\u00e1ch l\u00e0m v\u1edbi CyberPanel, DirectAdmin v\u00e0 cPanel, ba panel ph\u1ed5 bi\u1ebfn nh\u1ea5t tr\u00ean VPS Vi\u1ec7t Nam.<\/p>\n<h3 style=\"color: #1e3a8a; font-size: 20px; font-weight: 600; margin: 25px 0 15px;\">CyberPanel: session n\u1eb1m trong \/var\/lib\/lsphp\/session<\/h3>\n<p style=\"text-align: justify;\">CyberPanel d\u00f9ng LiteSpeed PHP (lsphp) thay v\u00ec PHP-FPM ti\u00eau chu\u1ea9n, n\u00ean session \u0111\u01b0\u1ee3c l\u01b0u trong <code>\/var\/lib\/lsphp\/session\/<\/code>. \u0110\u00e2y l\u00e0 nguy\u00ean nh\u00e2n full inode ph\u1ed5 bi\u1ebfn nh\u1ea5t tr\u00ean CyberPanel n\u1ebfu garbage collector kh\u00f4ng ch\u1ea1y \u0111\u00fang.<\/p>\n<p style=\"text-align: justify;\">Ki\u1ec3m tra s\u1ed1 l\u01b0\u1ee3ng file session:<\/p>\n<pre><code class=\"language-bash\">find \/var\/lib\/lsphp\/session\/ -type f -name 'sess_*' | wc -l<\/code><\/pre>\n<p style=\"text-align: justify;\">X\u00f3a file session c\u0169 h\u01a1n 2 ng\u00e0y:<\/p>\n<pre><code class=\"language-bash\">find \/var\/lib\/lsphp\/session\/ -type f -name 'sess_*' -mtime +2 -delete<\/code><\/pre>\n<p style=\"text-align: justify;\">Sau khi d\u1ecdn, ki\u1ec3m tra l\u1ea1i inode v\u00e0 kh\u1edfi \u0111\u1ed9ng l\u1ea1i lsphp n\u1ebfu c\u1ea7n:<\/p>\n<pre><code class=\"language-bash\">df -i\r\nsystemctl restart lsws<\/code><\/pre>\n<h3 style=\"color: #1e3a8a; font-size: 20px; font-weight: 600; margin: 25px 0 15px;\">DirectAdmin: ki\u1ec3m tra qua dashboard v\u00e0 SSH<\/h3>\n<p style=\"text-align: justify;\">DirectAdmin hi\u1ec3n th\u1ecb m\u1ee9c s\u1eed d\u1ee5ng inode theo t\u1eebng user account tr\u00ean dashboard ch\u00ednh (Admin Level \u2192 Show All Users). Tr\u00ean shared hosting, gi\u1edbi h\u1ea1n inode th\u01b0\u1eddng \u0111\u01b0\u1ee3c \u0111\u1eb7t theo g\u00f3i hosting, v\u00e0 user v\u01b0\u1ee3t ng\u01b0\u1ee1ng s\u1ebd kh\u00f4ng t\u1ea1o \u0111\u01b0\u1ee3c file m\u1edbi.<\/p>\n<p style=\"text-align: justify;\">Ki\u1ec3m tra inode to\u00e0n server qua SSH:<\/p>\n<pre><code class=\"language-bash\">df -i<\/code><\/pre>\n<p style=\"text-align: justify;\">T\u00ecm user ho\u1eb7c th\u01b0 m\u1ee5c chi\u1ebfm nhi\u1ec1u inode nh\u1ea5t trong \/home:<\/p>\n<pre><code class=\"language-bash\">for user in \/home\/*; do\r\n  echo -n \"$(basename $user): \"\r\n  find \"$user\" -xdev -type f 2&gt;\/dev\/null | wc -l\r\ndone | sort -t: -k2 -rn | head -10<\/code><\/pre>\n<p style=\"text-align: justify;\">DirectAdmin th\u01b0\u1eddng g\u1eb7p full inode do Message System ticket v\u00e0 backup c\u0169 t\u00edch t\u1ee5 trong th\u01b0 m\u1ee5c user. D\u1ecdn ticket c\u0169:<\/p>\n<pre><code class=\"language-bash\">find \/usr\/local\/directadmin\/data\/tickets -type f -mtime +30 -delete 2&gt;\/dev\/null<\/code><\/pre>\n<p style=\"text-align: justify;\">D\u1ecdn backup c\u0169 trong \/home\/admin\/admin_backups n\u1ebfu c\u00f3:<\/p>\n<pre><code class=\"language-bash\">find \/home\/admin\/admin_backups -name '*.tar.gz' -mtime +7 -delete 2&gt;\/dev\/null<\/code><\/pre>\n<h3 style=\"color: #1e3a8a; font-size: 20px; font-weight: 600; margin: 25px 0 15px;\">cPanel: ki\u1ec3m tra File Usage v\u00e0 d\u1ecdn qua SSH<\/h3>\n<p style=\"text-align: justify;\">cPanel hi\u1ec3n th\u1ecb s\u1ed1 inode \u0111ang d\u00f9ng so v\u1edbi gi\u1edbi h\u1ea1n trong m\u1ee5c <strong>Statistics \u2192 File Usage<\/strong> tr\u00ean trang ch\u1ee7 t\u00e0i kho\u1ea3n. N\u1ebfu con s\u1ed1 n\u00e0y ch\u1ea1m tr\u1ea7n trong khi Disk Usage v\u1eabn th\u1ea5p, b\u1ea1n \u0111ang b\u1ecb full inode do t\u00e0i kho\u1ea3n, kh\u00f4ng ph\u1ea3i do to\u00e0n server.<\/p>\n<p style=\"text-align: justify;\">Ki\u1ec3m tra inode to\u00e0n server:<\/p>\n<pre><code class=\"language-bash\">df -i<\/code><\/pre>\n<p style=\"text-align: justify;\">cPanel d\u00f9ng MultiPHP v\u00e0 session c\u00f3 th\u1ec3 n\u1eb1m \u1edf nhi\u1ec1u v\u1ecb tr\u00ed kh\u00e1c nhau t\u00f9y phi\u00ean b\u1ea3n PHP. Ki\u1ec3m tra t\u1ea5t c\u1ea3 th\u01b0 m\u1ee5c session c\u00f3 th\u1ec3 c\u00f3:<\/p>\n<pre><code class=\"language-bash\">ls -d \/var\/cpanel\/php\/sessions\/*\/ 2&gt;\/dev\/null\r\nls -d \/tmp\/systemd-private-*\/tmp\/ 2&gt;\/dev\/null<\/code><\/pre>\n<p style=\"text-align: justify;\">X\u00f3a session c\u0169 trong t\u1eebng th\u01b0 m\u1ee5c t\u01b0\u01a1ng \u1ee9ng. Thay <code>ea-php81<\/code> b\u1eb1ng phi\u00ean b\u1ea3n PHP th\u1ef1c t\u1ebf \u0111ang d\u00f9ng:<\/p>\n<pre><code class=\"language-bash\">find \/var\/cpanel\/php\/sessions\/ea-php81\/ -type f -name 'sess_*' -mtime +2 -delete 2&gt;\/dev\/null<\/code><\/pre>\n<p style=\"text-align: justify;\">N\u1ebfu server d\u00f9ng CloudLinux v\u1edbi gi\u1edbi h\u1ea1n inode theo package, b\u1ea1n c\u1ea7n \u0111i\u1ec1u ch\u1ec9nh gi\u1edbi h\u1ea1n trong WHM \u2192 Packages \u2192 Feature Manager ho\u1eb7c t\u0103ng gi\u1edbi h\u1ea1n trong g\u00f3i t\u01b0\u01a1ng \u1ee9ng.<\/p>\n<h2 id=\"section5\" style=\"color: #1e3a8a; font-size: 24px; font-weight: bold; text-align: left; border-left: 5px solid #2563EB; padding-left: 15px; margin: 40px 0 20px; line-height: 1.4;\">Ph\u00f2ng ng\u1eeba inode b\u1ecb \u0111\u1ea7y tr\u1edf l\u1ea1i<\/h2>\n<p style=\"text-align: justify;\">D\u1ecdn inode ch\u1ec9 gi\u1ea3i quy\u1ebft tri\u1ec7u ch\u1ee9ng. \u0110\u1ec3 kh\u00f4ng ph\u1ea3i x\u1eed l\u00fd t\u00ecnh tr\u1ea1ng full inode l\u1eb7p l\u1ea1i m\u1ed7i v\u00e0i tu\u1ea7n, b\u1ea1n c\u1ea7n thi\u1ebft l\u1eadp c\u01a1 ch\u1ebf t\u1ef1 \u0111\u1ed9ng d\u1ecdn d\u1eb9p v\u00e0 gi\u00e1m s\u00e1t \u0111\u1ecbnh k\u1ef3.<\/p>\n<h3 style=\"color: #1e3a8a; font-size: 20px; font-weight: 600; margin: 25px 0 15px;\">C\u1ea5u h\u00ecnh logrotate cho \/var\/log<\/h3>\n<p style=\"text-align: justify;\">Logrotate l\u00e0 c\u00f4ng c\u1ee5 ti\u00eau chu\u1ea9n tr\u00ean h\u1ea7u h\u1ebft b\u1ea3n ph\u00e2n ph\u1ed1i Linux, ch\u1ea1y h\u00e0ng ng\u00e0y qua cron \u0111\u1ec3 xoay v\u00f2ng, n\u00e9n v\u00e0 x\u00f3a log c\u0169 theo c\u1ea5u h\u00ecnh trong <code>\/etc\/logrotate.conf<\/code> v\u00e0 <code>\/etc\/logrotate.d\/<\/code>. Ki\u1ec3m tra logrotate c\u00f3 \u0111ang ch\u1ea1y \u0111\u00fang kh\u00f4ng:<\/p>\n<pre><code class=\"language-bash\">systemctl status logrotate.timer\r\ncat \/etc\/logrotate.conf | grep -E 'rotate|weekly|daily'<\/code><\/pre>\n<p style=\"text-align: justify;\">M\u1ed9t c\u1ea5u h\u00ecnh logrotate \u0111i\u1ec3n h\u00ecnh cho syslog v\u00e0 auth.log gi\u1edbi h\u1ea1n 4 b\u1ea3n archive v\u00e0 n\u00e9n l\u1ea1i \u0111\u1ec3 ti\u1ebft ki\u1ec7m inode:<\/p>\n<pre><code class=\"language-bash\">\/var\/log\/syslog {\r\n    rotate 4\r\n    weekly\r\n    missingok\r\n    notifempty\r\n    compress\r\n    delaycompress\r\n    postrotate\r\n        \/usr\/lib\/rsyslog\/rsyslog-rotate\r\n    endscript\r\n}<\/code><\/pre>\n<p style=\"text-align: justify;\">Chi ti\u1ebft \u0111\u1ea7y \u0111\u1ee7 v\u1ec1 c\u1ea5u h\u00ecnh logrotate cho t\u1eebng lo\u1ea1i log tr\u00ean VPS b\u1ea1n xem trong b\u00e0i <a href=\"https:\/\/interdata.vn\/blog\/cach-gioi-han-dung-luong-file-log-tren-vps\/\" target=\"_blank\" rel=\"noopener\">c\u1ea5u h\u00ecnh Logrotate \u0111\u1ec3 t\u1ef1 \u0111\u1ed9ng xoay v\u00f2ng log<\/a>.<\/p>\n<h3 style=\"color: #1e3a8a; font-size: 20px; font-weight: 600; margin: 25px 0 15px;\">Cronjob t\u1ef1 \u0111\u1ed9ng d\u1ecdn PHP session<\/h3>\n<p style=\"text-align: justify;\">Thay v\u00ec ch\u1edd garbage collector c\u1ee7a PHP ch\u1ea1y ng\u1eabu nhi\u00ean theo t\u1ec9 l\u1ec7 <code>gc_probability\/gc_divisor<\/code>, b\u1ea1n n\u00ean t\u1ea1o cronjob d\u1ecdn session c\u0169 m\u1ed7i ng\u00e0y. \u0110i\u1ec1u n\u00e0y \u0111\u1eb7c bi\u1ec7t quan tr\u1ecdng tr\u00ean server c\u00f3 l\u01b0u l\u01b0\u1ee3ng truy c\u1eadp cao, n\u01a1i GC m\u1eb7c \u0111\u1ecbnh c\u00f3 th\u1ec3 kh\u00f4ng \u0111\u1ee7 nhanh \u0111\u1ec3 theo k\u1ecbp t\u1ed1c \u0111\u1ed9 t\u1ea1o session m\u1edbi.<\/p>\n<p style=\"text-align: justify;\">M\u1edf crontab c\u1ee7a root:<\/p>\n<pre><code class=\"language-bash\">crontab -e<\/code><\/pre>\n<p style=\"text-align: justify;\">Th\u00eam d\u00f2ng sau \u0111\u1ec3 d\u1ecdn session c\u0169 h\u01a1n 1 ng\u00e0y v\u00e0o 3 gi\u1edd s\u00e1ng m\u1ed7i ng\u00e0y. \u0110i\u1ec1u ch\u1ec9nh \u0111\u01b0\u1eddng d\u1eabn cho ph\u00f9 h\u1ee3p v\u1edbi PHP-FPM ho\u1eb7c lsphp:<\/p>\n<pre><code class=\"language-bash\">0 3 * * * find \/var\/lib\/php\/sessions -type f -name 'sess_*' -mtime +1 -delete 2&gt;\/dev\/null<\/code><\/pre>\n<p style=\"text-align: justify;\">H\u01b0\u1edbng d\u1eabn chi ti\u1ebft c\u00e1ch vi\u1ebft cronjob, c\u00fa ph\u00e1p th\u1eddi gian v\u00e0 c\u00e1c t\u00f9y ch\u1ecdn n\u00e2ng cao c\u00f3 trong b\u00e0i <a href=\"https:\/\/interdata.vn\/blog\/cron-job-vps-linux\/\" target=\"_blank\" rel=\"noopener\">thi\u1ebft l\u1eadp cron job t\u1ef1 \u0111\u1ed9ng d\u1ecdn d\u1eb9p file<\/a>.<\/p>\n<h3 style=\"color: #1e3a8a; font-size: 20px; font-weight: 600; margin: 25px 0 15px;\">\u0110i\u1ec1u ch\u1ec9nh session.gc_maxlifetime v\u00e0 session.gc_probability trong php.ini<\/h3>\n<p style=\"text-align: justify;\">Hai tham s\u1ed1 quy\u1ebft \u0111\u1ecbnh t\u1ed1c \u0111\u1ed9 d\u1ecdn session t\u1ef1 \u0111\u1ed9ng c\u1ee7a PHP:<\/p>\n<ul>\n<li><code>session.gc_maxlifetime = 1440<\/code>: session \u0111\u01b0\u1ee3c coi l\u00e0 r\u00e1c sau 1440 gi\u00e2y (24 ph\u00fat). V\u1edbi website c\u00f3 ng\u01b0\u1eddi d\u00f9ng \u0111\u0103ng nh\u1eadp l\u00e2u, b\u1ea1n c\u00f3 th\u1ec3 t\u0103ng l\u00ean 3600 ho\u1eb7c 7200 \u0111\u1ec3 tr\u00e1nh \u0111\u0103ng xu\u1ea5t qu\u00e1 s\u1edbm, nh\u01b0ng \u0111\u1eebng \u0111\u1ec3 qu\u00e1 cao v\u00ec session c\u0169 s\u1ebd t\u00edch t\u1ee5 l\u00e2u h\u01a1n.<\/li>\n<li><code>session.gc_probability = 1<\/code> v\u00e0 <code>session.gc_divisor = 1000<\/code>: m\u1ed7i request c\u00f3 0.1% c\u01a1 h\u1ed9i k\u00edch ho\u1ea1t garbage collector. N\u1ebfu <code>gc_probability = 0<\/code>, GC kh\u00f4ng bao gi\u1edd ch\u1ea1y t\u1ef1 \u0111\u1ed9ng v\u00e0 session s\u1ebd t\u00edch t\u1ee5 v\u00f4 h\u1ea1n.<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">T\u00ecm file php.ini \u0111ang \u0111\u01b0\u1ee3c PHP-FPM s\u1eed d\u1ee5ng v\u00e0 ki\u1ec3m tra gi\u00e1 tr\u1ecb hi\u1ec7n t\u1ea1i:<\/p>\n<pre><code class=\"language-bash\">php -i | grep -E 'session.gc_maxlifetime|session.gc_probability|Loaded Configuration File'<\/code><\/pre>\n<p style=\"text-align: justify;\">Ch\u1ec9nh s\u1eeda tr\u1ef1c ti\u1ebfp trong file php.ini. \u0110\u01b0\u1eddng d\u1eabn c\u00f3 th\u1ec3 kh\u00e1c nhau t\u00f9y phi\u00ean b\u1ea3n PHP:<\/p>\n<pre><code class=\"language-bash\">sed -i 's\/^session.gc_probability = 0\/session.gc_probability = 1\/' \/etc\/php\/*\/fpm\/php.ini\r\nsystemctl restart php*-fpm<\/code><\/pre>\n<h3 style=\"color: #1e3a8a; font-size: 20px; font-weight: 600; margin: 25px 0 15px;\">Gi\u00e1m s\u00e1t inode \u0111\u1ecbnh k\u1ef3 v\u00e0 b\u1ea3o m\u1eadt server<\/h3>\n<p style=\"text-align: justify;\">Thi\u1ebft l\u1eadp cronjob ki\u1ec3m tra inode m\u1ed7i gi\u1edd v\u00e0 g\u1eedi c\u1ea3nh b\u00e1o khi v\u01b0\u1ee3t ng\u01b0\u1ee1ng 85%. Script \u0111\u01a1n gi\u1ea3n d\u00f9ng <code>df -i<\/code> v\u00e0 <code>awk<\/code>:<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\r\nTHRESHOLD=85\r\ndf -i --output=pcent \/ | tail -1 | tr -d '%' | while read pct; do\r\n  if [ \"$pct\" -ge \"$THRESHOLD\" ]; then\r\n    echo \"CANH BAO: Inode tren \/ da dat ${pct}%\" | mail -s \"Inode Alert\" admin@example.com\r\n  fi\r\ndone<\/code><\/pre>\n<p style=\"text-align: justify;\">L\u01b0u script v\u00e0o <code>\/usr\/local\/bin\/check-inode.sh<\/code>, c\u1ea5p quy\u1ec1n th\u1ef1c thi b\u1eb1ng <code>chmod +x<\/code>, v\u00e0 th\u00eam v\u00e0o crontab ch\u1ea1y m\u1ed7i gi\u1edd:<\/p>\n<pre><code class=\"language-bash\">0 * * * * \/usr\/local\/bin\/check-inode.sh<\/code><\/pre>\n<p style=\"text-align: justify;\">Song song v\u1edbi gi\u00e1m s\u00e1t, b\u1ea1n n\u00ean r\u00e0 so\u00e1t c\u00e1c bi\u1ec7n ph\u00e1p b\u1ea3o m\u1eadt t\u1ed5ng th\u1ec3 \u0111\u1ec3 ng\u0103n k\u1ebb t\u1ea5n c\u00f4ng l\u1ee3i d\u1ee5ng form mail ho\u1eb7c upload file \u0111\u1ec3 l\u00e0m \u0111\u1ea7y inode. C\u00e1c b\u01b0\u1edbc nh\u01b0 gi\u1edbi h\u1ea1n t\u1ec9 l\u1ec7 request, c\u1ea5u h\u00ecnh firewall v\u00e0 t\u1eaft c\u00e1c d\u1ecbch v\u1ee5 kh\u00f4ng c\u1ea7n thi\u1ebft \u0111\u01b0\u1ee3c t\u1ed5ng h\u1ee3p trong b\u00e0i <a href=\"https:\/\/interdata.vn\/blog\/bao-mat-vps-linux\/\" target=\"_blank\" rel=\"noopener\">c\u00e1c b\u01b0\u1edbc b\u1ea3o m\u1eadt VPS Linux<\/a>.<\/p>\n<div style=\"display: flex; flex-wrap: wrap; background-color: #fff; border: 1.5px solid #BFDBFE; box-shadow: 0 8px 20px rgba(37,99,235,0.08); border-radius: 12px; overflow: hidden; margin: 35px 0;\">\n<div style=\"flex: 1; min-width: 250px; background: linear-gradient(135deg, #1E3A8A 0%, #2563EB 100%); display: flex; align-items: center; justify-content: center; padding: 30px; text-align: center;\">\n<div>\n<p style=\"color: #fff; font-size: 34px; font-family: 'Be Vietnam Pro', sans-serif; font-weight: bold; margin: 0; line-height: 1.1;\">Cloud Server<\/p>\n<p style=\"color: #dbeafe; font-size: 15px; font-weight: 600; margin-top: 12px;\">N\u00e2ng t\u00e0i nguy\u00ean t\u1ee9c th\u00ec \u2013 Kh\u00f4ng rebuild<\/p>\n<\/div>\n<\/div>\n<div style=\"flex: 2; padding: 25px; min-width: 300px;\">\n<h3 style=\"font-family: 'Be Vietnam Pro', sans-serif; color: #1e3a8a; margin-top: 0; font-size: 20px;\">Website \u0111ang l\u1edbn \u2013 \u0110\u1eebng \u0111\u1ec3 filesystem ch\u1eb7n \u0111\u00e0 t\u0103ng tr\u01b0\u1edfng<\/h3>\n<p style=\"text-align: justify; font-size: 15px; margin-bottom: 15px;\">Khi l\u01b0\u1ee3ng ng\u01b0\u1eddi d\u00f9ng v\u00e0 file t\u0103ng li\u00ean t\u1ee5c, VPS c\u1ed1 \u0111\u1ecbnh s\u1ebd s\u1edbm ch\u1ea1m tr\u1ea7n inode. Cloud Server InterData cho ph\u00e9p <strong>n\u00e2ng dung l\u01b0\u1ee3ng l\u01b0u tr\u1eef v\u00e0 t\u00e0i nguy\u00ean ngay l\u1eadp t\u1ee9c<\/strong> \u2013 kh\u00f4ng c\u1ea7n rebuild, kh\u00f4ng downtime, kh\u00f4ng lo full inode tr\u1edf l\u1ea1i:<\/p>\n<ul style=\"font-size: 14px; color: #374151; margin: 0 0 18px; padding-left: 20px;\">\n<li>M\u1edf r\u1ed9ng filesystem linh ho\u1ea1t \u2013 th\u00eam inode khi c\u1ea7n<\/li>\n<li>N\u00e2ng RAM\/CPU ngay l\u1eadp t\u1ee9c, kh\u00f4ng gi\u00e1n \u0111o\u1ea1n d\u1ecbch v\u1ee5<\/li>\n<li>SSD NVMe U.2 \u2013 hi\u1ec7u n\u0103ng cao cho production<\/li>\n<li>H\u1ed7 tr\u1ee3 24\/7 \u2013 \u0111\u1ed3ng h\u00e0nh khi server cao \u0111i\u1ec3m<\/li>\n<\/ul>\n<p><a style=\"background: linear-gradient(90deg, #2563EB 0%, #1E3A8A 100%); color: #fff; padding: 14px 28px; text-decoration: none; font-weight: bold; border-radius: 8px; font-size: 15px; display: inline-block; box-shadow: 0 5px 15px rgba(37,99,235,0.3);\" href=\"https:\/\/interdata.vn\/cloud-server\/\" target=\"_blank\" rel=\"noopener\">Xem B\u1ea3ng Gi\u00e1 Cloud Server \u27f6<\/a><\/p>\n<p style=\"font-size: 13px; color: #6b7280; margin: 12px 0 0;\">Tr\u1ea3 theo t\u00e0i nguy\u00ean th\u1ef1c d\u00f9ng \u2013 N\u00e2ng c\u1ea5p kh\u00f4ng ph\u00ed \u1ea9n<\/p>\n<\/div>\n<\/div>\n<h2 id=\"section6\" style=\"color: #1e3a8a; font-size: 24px; font-weight: bold; text-align: left; border-left: 5px solid #2563EB; padding-left: 15px; margin: 40px 0 20px; line-height: 1.4;\">M\u1ed9t s\u1ed1 l\u1ed7i b\u1ea5t th\u01b0\u1eddng sau khi d\u1ecdn inode<\/h2>\n<h3 style=\"color: #1e3a8a; font-size: 20px; font-weight: 600; margin: 25px 0 15px;\">1. \u0110\u00e3 x\u00f3a file nh\u01b0ng df -i v\u1eabn b\u00e1o 100%<\/h3>\n<p style=\"text-align: justify;\"><strong>Tri\u1ec7u ch\u1ee9ng:<\/strong> B\u1ea1n \u0111\u00e3 x\u00f3a h\u00e0ng lo\u1ea1t file session ho\u1eb7c log, nh\u01b0ng <code>df -i<\/code> v\u1eabn hi\u1ec3n th\u1ecb <code>IUse% 100%<\/code>. Dung l\u01b0\u1ee3ng kh\u00f4ng \u0111\u01b0\u1ee3c gi\u1ea3i ph\u00f3ng d\u00f9 <code>ls<\/code> kh\u00f4ng c\u00f2n th\u1ea5y file.<\/p>\n<p style=\"text-align: justify;\"><strong>Nguy\u00ean nh\u00e2n:<\/strong> M\u1ed9t ti\u1ebfn tr\u00ecnh v\u1eabn \u0111ang gi\u1eef file descriptor m\u1edf tr\u00ean file \u0111\u00e3 b\u1ecb x\u00f3a. Trong Linux, khi b\u1ea1n <code>rm<\/code> m\u1ed9t file, directory entry b\u1ecb x\u00f3a nh\u01b0ng inode v\u00e0 data block ch\u1ec9 \u0111\u01b0\u1ee3c gi\u1ea3i ph\u00f3ng khi t\u1ea5t c\u1ea3 ti\u1ebfn tr\u00ecnh \u0111\u00f3ng file descriptor. N\u1ebfu PHP-FPM, Postfix ho\u1eb7c rsyslog v\u1eabn \u0111ang gi\u1eef file, inode kh\u00f4ng \u0111\u01b0\u1ee3c tr\u1ea3 v\u1ec1 filesystem.<\/p>\n<p style=\"text-align: justify;\"><strong>Ki\u1ec3m tra:<\/strong> Li\u1ec7t k\u00ea c\u00e1c file \u0111\u00e3 b\u1ecb x\u00f3a nh\u01b0ng v\u1eabn \u0111\u01b0\u1ee3c ti\u1ebfn tr\u00ecnh gi\u1eef m\u1edf:<\/p>\n<pre><code class=\"language-bash\">lsof +L1 2&gt;\/dev\/null | grep -i deleted\r\nlsof | grep deleted | head -20<\/code><\/pre>\n<p style=\"text-align: justify;\"><strong>C\u00e1ch x\u1eed l\u00fd:<\/strong> Restart d\u1ecbch v\u1ee5 \u0111ang gi\u1eef file. Thay <code>php8.1-fpm<\/code> b\u1eb1ng t\u00ean d\u1ecbch v\u1ee5 th\u1ef1c t\u1ebf:<\/p>\n<pre><code class=\"language-bash\">systemctl restart php8.1-fpm\r\nsystemctl restart postfix<\/code><\/pre>\n<p style=\"text-align: justify;\">Sau khi restart, ch\u1ea1y l\u1ea1i <code>df -i<\/code> \u0111\u1ec3 x\u00e1c nh\u1eadn inode \u0111\u00e3 \u0111\u01b0\u1ee3c gi\u1ea3i ph\u00f3ng. N\u1ebfu kh\u00f4ng th\u1ec3 restart d\u1ecbch v\u1ee5 ngay, v\u00ed d\u1ee5 \u0111ang trong gi\u1edd cao \u0111i\u1ec3m, b\u1ea1n c\u00f3 th\u1ec3 d\u00f9ng <code>kill -HUP<\/code> \u0111\u1ec3 ti\u1ebfn tr\u00ecnh \u0111\u00f3ng file descriptor m\u00e0 kh\u00f4ng ng\u1eaft k\u1ebft n\u1ed1i ho\u00e0n to\u00e0n.<\/p>\n<h3 style=\"color: #1e3a8a; font-size: 20px; font-weight: 600; margin: 25px 0 15px;\">2. rm b\u00e1o l\u1ed7i &#8220;Argument list too long&#8221;<\/h3>\n<p style=\"text-align: justify;\"><strong>Tri\u1ec7u ch\u1ee9ng:<\/strong> B\u1ea1n ch\u1ea1y <code>rm *<\/code> ho\u1eb7c <code>rm -rf *<\/code> trong th\u01b0 m\u1ee5c ch\u1ee9a h\u00e0ng tr\u0103m ngh\u00ecn file v\u00e0 nh\u1eadn l\u1ed7i <code>-bash: \/bin\/rm: Argument list too long<\/code>. Shell kh\u00f4ng th\u1ec3 m\u1edf r\u1ed9ng wildcard th\u00e0nh danh s\u00e1ch \u0111\u1ed1i s\u1ed1 \u0111\u1ee7 l\u1edbn \u0111\u1ec3 truy\u1ec1n cho <code>rm<\/code>.<\/p>\n<p style=\"text-align: justify;\"><strong>Nguy\u00ean nh\u00e2n:<\/strong> Gi\u1edbi h\u1ea1n <code>ARG_MAX<\/code> c\u1ee7a kernel, th\u01b0\u1eddng kho\u1ea3ng 2 MB tr\u00ean Linux, khi\u1ebfn shell kh\u00f4ng th\u1ec3 truy\u1ec1n h\u00e0ng tr\u0103m ngh\u00ecn t\u00ean file c\u00f9ng l\u00fac cho m\u1ed9t l\u1ec7nh duy nh\u1ea5t.<\/p>\n<p style=\"text-align: justify;\"><strong>C\u00e1ch x\u1eed l\u00fd:<\/strong> D\u00f9ng <code>find -delete<\/code> thay v\u00ec <code>rm<\/code> wildcard. L\u1ec7nh n\u00e0y x\u1eed l\u00fd t\u1eebng file tu\u1ea7n t\u1ef1, kh\u00f4ng b\u1ecb gi\u1edbi h\u1ea1n argument list:<\/p>\n<pre><code class=\"language-bash\">find \/var\/lib\/php\/sessions -type f -name 'sess_*' -delete<\/code><\/pre>\n<p style=\"text-align: justify;\">N\u1ebfu mu\u1ed1n theo d\u00f5i ti\u1ebfn \u0111\u1ed9 x\u00f3a, b\u1ea1n c\u00f3 th\u1ec3 pipe qua <code>pv<\/code> n\u1ebfu \u0111\u00e3 c\u00e0i, ho\u1eb7c \u0111\u1ebfm s\u1ed1 file c\u00f2n l\u1ea1i tr\u01b0\u1edbc v\u00e0 sau:<\/p>\n<pre><code class=\"language-bash\">find \/var\/lib\/php\/sessions -type f -name 'sess_*' | wc -l<\/code><\/pre>\n<p style=\"text-align: justify;\">Ph\u01b0\u01a1ng \u00e1n thay th\u1ebf khi c\u1ea7n x\u00f3a nhanh h\u01a1n: t\u1ea1o m\u1ed9t th\u01b0 m\u1ee5c m\u1edbi, di chuy\u1ec3n c\u00e1c file c\u1ea7n gi\u1eef sang \u0111\u00f3, x\u00f3a c\u1ea3 th\u01b0 m\u1ee5c c\u0169 b\u1eb1ng <code>rm -rf<\/code>, r\u1ed3i \u0111\u1ed5i t\u00ean th\u01b0 m\u1ee5c m\u1edbi v\u1ec1 t\u00ean c\u0169. C\u00e1ch n\u00e0y nhanh h\u01a1n nh\u01b0ng c\u1ea7n c\u1ea9n th\u1eadn \u0111\u1ec3 kh\u00f4ng m\u1ea5t d\u1eef li\u1ec7u quan tr\u1ecdng.<\/p>\n<h3 style=\"color: #1e3a8a; font-size: 20px; font-weight: 600; margin: 25px 0 15px;\">3. D\u1ecbch v\u1ee5 v\u1eabn l\u1ed7i sau khi \u0111\u00e3 d\u1ecdn inode<\/h3>\n<p style=\"text-align: justify;\"><strong>Tri\u1ec7u ch\u1ee9ng:<\/strong> <code>df -i<\/code> \u0111\u00e3 v\u1ec1 m\u1ee9c b\u00ecnh th\u01b0\u1eddng d\u01b0\u1edbi 50%, nh\u01b0ng website v\u1eabn tr\u1ea3 l\u1ed7i 500, PHP-FPM kh\u00f4ng kh\u1edfi \u0111\u1ed9ng ho\u1eb7c database kh\u00f4ng k\u1ebft n\u1ed1i \u0111\u01b0\u1ee3c.<\/p>\n<p style=\"text-align: justify;\"><strong>Nguy\u00ean nh\u00e2n:<\/strong> Khi inode \u0111\u1ea7y, nhi\u1ec1u d\u1ecbch v\u1ee5 ghi log ho\u1eb7c ghi file tr\u1ea1ng th\u00e1i th\u1ea5t b\u1ea1i v\u00e0 c\u00f3 th\u1ec3 \u0111\u00e3 crash ho\u1eb7c r\u01a1i v\u00e0o tr\u1ea1ng th\u00e1i kh\u00f4ng \u1ed5n \u0111\u1ecbnh. PHP-FPM c\u00f3 th\u1ec3 \u0111\u00e3 d\u1eebng worker pool, MySQL\/MariaDB c\u00f3 th\u1ec3 kh\u00f4ng m\u1edf \u0111\u01b0\u1ee3c file t\u1ea1m, ho\u1eb7c web server kh\u00f4ng ghi \u0111\u01b0\u1ee3c access log.<\/p>\n<p style=\"text-align: justify;\"><strong>Ki\u1ec3m tra:<\/strong> Ki\u1ec3m tra tr\u1ea1ng th\u00e1i c\u00e1c d\u1ecbch v\u1ee5 ch\u00ednh:<\/p>\n<pre><code class=\"language-bash\">systemctl status nginx php8.1-fpm mariadb\r\njournalctl -xe --since \"10 minutes ago\" | grep -i \"no space\\|error\\|failed\"<\/code><\/pre>\n<p style=\"text-align: justify;\"><strong>C\u00e1ch x\u1eed l\u00fd:<\/strong> Restart tu\u1ea7n t\u1ef1 c\u00e1c d\u1ecbch v\u1ee5 li\u00ean quan:<\/p>\n<pre><code class=\"language-bash\">systemctl restart php8.1-fpm\r\nsystemctl restart nginx\r\nsystemctl restart mariadb<\/code><\/pre>\n<p style=\"text-align: justify;\">Ki\u1ec3m tra l\u1ea1i log \u1ee9ng d\u1ee5ng \u0111\u1ec3 x\u00e1c nh\u1eadn kh\u00f4ng c\u00f2n l\u1ed7i ghi file. N\u1ebfu d\u1ecbch v\u1ee5 v\u1eabn kh\u00f4ng kh\u1edfi \u0111\u1ed9ng sau khi restart, ki\u1ec3m tra c\u1ea5u h\u00ecnh c\u1ee7a d\u1ecbch v\u1ee5 \u0111\u00f3 c\u00f3 tham chi\u1ebfu \u0111\u1ebfn \u0111\u01b0\u1eddng d\u1eabn file kh\u00f4ng t\u1ed3n t\u1ea1i ho\u1eb7c quy\u1ec1n truy c\u1eadp sai.<\/p>\n<p style=\"text-align: justify;\">Tr\u01b0\u1eddng h\u1ee3p h\u1ec7 th\u1ed1ng b\u1ecb h\u1ecfng n\u1eb7ng, filesystem c\u00f3 l\u1ed7i sau khi h\u1ebft inode \u0111\u1ed9t ng\u1ed9t, ho\u1eb7c b\u1ea1n kh\u00f4ng th\u1ec3 kh\u00f4i ph\u1ee5c d\u1ecbch v\u1ee5 sau nhi\u1ec1u l\u1ea7n restart, gi\u1ea3i ph\u00e1p cu\u1ed1i c\u00f9ng l\u00e0 <a href=\"https:\/\/interdata.vn\/blog\/cai-lai-he-dieu-hanh-cho-vps\/\" target=\"_blank\" rel=\"noopener\">c\u00e0i l\u1ea1i h\u1ec7 \u0111i\u1ec1u h\u00e0nh VPS<\/a> t\u1eeb snapshot ho\u1eb7c backup g\u1ea7n nh\u1ea5t. Tr\u01b0\u1edbc khi th\u1ef1c hi\u1ec7n, h\u00e3y \u0111\u1ea3m b\u1ea3o b\u1ea1n \u0111\u00e3 sao l\u01b0u to\u00e0n b\u1ed9 d\u1eef li\u1ec7u quan tr\u1ecdng.<\/p>\n<p style=\"text-align: justify;\">Sau khi kh\u1eafc ph\u1ee5c xong s\u1ef1 c\u1ed1, \u0111\u00e2y l\u00e0 th\u1eddi \u0111i\u1ec3m ph\u00f9 h\u1ee3p \u0111\u1ec3 r\u00e0 so\u00e1t l\u1ea1i c\u1ea5u h\u00ecnh b\u1ea3o m\u1eadt. N\u1ebfu server ch\u01b0a c\u00f3 firewall, b\u1ea1n n\u00ean <a href=\"https:\/\/interdata.vn\/blog\/cai-dat-va-cau-hinh-ufw\/\" target=\"_blank\" rel=\"noopener\">c\u1ea5u h\u00ecnh UFW firewall<\/a> \u0111\u1ec3 gi\u1edbi h\u1ea1n c\u1ed5ng truy c\u1eadp v\u00e0 gi\u1ea3m b\u1ec1 m\u1eb7t t\u1ea5n c\u00f4ng, \u0111\u1eb7c bi\u1ec7t quan tr\u1ecdng n\u1ebfu s\u1ef1 c\u1ed1 full inode c\u00f3 nguy\u00ean nh\u00e2n t\u1eeb ho\u1ea1t \u0111\u1ed9ng b\u1ea5t th\u01b0\u1eddng b\u00ean ngo\u00e0i.<\/p>\n<div style=\"background-color: #f8fafc; border: 1.5px solid #E2E8F0; border-radius: 12px; padding: 30px; margin: 40px 0;\">\n<h2 id=\"section7\" style=\"color: #1e3a8a; font-size: 22px; font-weight: bold; margin-top: 0;\">C\u00e2u h\u1ecfi th\u01b0\u1eddng g\u1eb7p v\u1ec1 full inode<\/h2>\n<h3 style=\"color: #1e3a8a; font-size: 18px; font-weight: 600; margin: 20px 0 10px;\">T\u1ea1i sao \u1ed5 c\u1ee9ng c\u00f2n tr\u1ed1ng nh\u01b0ng server v\u1eabn b\u00e1o &#8220;No space left on device&#8221;?<\/h3>\n<p style=\"text-align: justify;\">L\u1ed7i n\u00e0y x\u1ea3y ra khi filesystem h\u1ebft inode ch\u1ee9 kh\u00f4ng ph\u1ea3i h\u1ebft dung l\u01b0\u1ee3ng block. M\u1ed7i file v\u00e0 th\u01b0 m\u1ee5c ti\u00eau t\u1ed1n m\u1ed9t inode c\u1ed1 \u0111\u1ecbnh khi format. N\u1ebfu c\u00f3 h\u00e0ng tri\u1ec7u file nh\u1ecf, inode c\u1ea1n tr\u01b0\u1edbc khi dung l\u01b0\u1ee3ng byte \u0111\u1ea7y. L\u1ec7nh <code>df -i<\/code> s\u1ebd x\u00e1c nh\u1eadn c\u1ed9t <code>IUse%<\/code> \u0111\u1ea1t 100%.<\/p>\n<h3 style=\"color: #1e3a8a; font-size: 18px; font-weight: 600; margin: 20px 0 10px;\">L\u00e0m th\u1ebf n\u00e0o \u0111\u1ec3 ki\u1ec3m tra nhanh ph\u00e2n v\u00f9ng n\u00e0o \u0111ang b\u1ecb full inode?<\/h3>\n<p style=\"text-align: justify;\">Ch\u1ea1y <code>df -i -h<\/code> \u0111\u1ec3 xem t\u1ea5t c\u1ea3 ph\u00e2n v\u00f9ng c\u00f9ng l\u00fac. C\u1ed9t <code>IUse%<\/code> cho bi\u1ebft m\u1ee9c s\u1eed d\u1ee5ng. Ph\u00e2n v\u00f9ng n\u00e0o c\u00f3 <code>IFree<\/code> b\u1eb1ng 0 ho\u1eb7c <code>IUse%<\/code> tr\u00ean 95% l\u00e0 m\u1ee5c ti\u00eau c\u1ea7n d\u1ecdn. Th\u01b0\u1eddng g\u1eb7p nh\u1ea5t l\u00e0 ph\u00e2n v\u00f9ng root <code>\/<\/code> ho\u1eb7c ph\u00e2n v\u00f9ng ch\u1ee9a <code>\/var<\/code>.<\/p>\n<h3 style=\"color: #1e3a8a; font-size: 18px; font-weight: 600; margin: 20px 0 10px;\">File session PHP t\u00edch t\u1ee5 bao nhi\u00eau th\u00ec g\u00e2y \u0111\u1ea7y inode?<\/h3>\n<p style=\"text-align: justify;\">Kh\u00f4ng c\u00f3 ng\u01b0\u1ee1ng c\u1ed1 \u0111\u1ecbnh, v\u00ec c\u00f2n t\u00f9y s\u1ed1 inode c\u1ee7a filesystem. Tr\u00ean ph\u00e2n v\u00f9ng m\u1eb7c \u0111\u1ecbnh 2,6 tri\u1ec7u inode, kho\u1ea3ng 500.000 \u0111\u1ebfn 1 tri\u1ec7u file session l\u00e0 c\u00f3 th\u1ec3 g\u00e2y full. D\u1ea5u hi\u1ec7u r\u00f5 nh\u1ea5t l\u00e0 <code>df -i<\/code> b\u00e1o <code>IUse%<\/code> tr\u00ean 90% v\u00e0 website b\u1eaft \u0111\u1ea7u l\u1ed7i t\u1ea1o file.<\/p>\n<h3 style=\"color: #1e3a8a; font-size: 18px; font-weight: 600; margin: 20px 0 10px;\">C\u00f3 th\u1ec3 t\u0103ng s\u1ed1 l\u01b0\u1ee3ng inode tr\u00ean ext4 m\u00e0 kh\u00f4ng format l\u1ea1i kh\u00f4ng?<\/h3>\n<p style=\"text-align: justify;\">Kh\u00f4ng. V\u1edbi filesystem ext4, s\u1ed1 inode \u0111\u01b0\u1ee3c c\u1ed1 \u0111\u1ecbnh khi t\u1ea1o filesystem v\u00e0 kh\u00f4ng th\u1ec3 thay \u0111\u1ed5i n\u1ebfu kh\u00f4ng format l\u1ea1i. Mu\u1ed1n t\u0103ng inode, b\u1ea1n ph\u1ea3i backup d\u1eef li\u1ec7u, format l\u1ea1i v\u1edbi t\u1ec9 l\u1ec7 <code>-i<\/code> th\u1ea5p h\u01a1n, v\u00ed d\u1ee5 <code>mkfs.ext4 -i 8192<\/code>, r\u1ed3i restore d\u1eef li\u1ec7u.<\/p>\n<h3 style=\"color: #1e3a8a; font-size: 18px; font-weight: 600; margin: 20px 0 10px;\">D\u1ecdn inode xong website v\u1eabn l\u1ed7i, ph\u1ea3i ki\u1ec3m tra th\u00eam \u0111i\u1ec1u g\u00ec?<\/h3>\n<p style=\"text-align: justify;\">Ki\u1ec3m tra xem ti\u1ebfn tr\u00ecnh n\u00e0o v\u1eabn gi\u1eef file descriptor tr\u00ean file \u0111\u00e3 x\u00f3a b\u1eb1ng <code>lsof | grep deleted<\/code>, sau \u0111\u00f3 restart d\u1ecbch v\u1ee5 t\u01b0\u01a1ng \u1ee9ng. \u0110\u1ed3ng th\u1eddi ki\u1ec3m tra tr\u1ea1ng th\u00e1i PHP-FPM, web server v\u00e0 database xem c\u00f3 d\u1ecbch v\u1ee5 n\u00e0o crash trong th\u1eddi gian inode \u0111\u1ea7y hay kh\u00f4ng.<\/p>\n<\/div>\n<div style=\"border-top: 2px dashed #BFDBFE; margin-top: 50px; padding-top: 30px;\">\n<h2 style=\"color: #1e3a8a; font-size: 22px; font-weight: bold;\">L\u1eddi k\u1ebft<\/h2>\n<p style=\"text-align: justify;\">X\u1eed l\u00fd t\u00ecnh tr\u1ea1ng full inode kh\u00f4ng kh\u00f3 n\u1ebfu b\u1ea1n \u0111i \u0111\u00fang tr\u00ecnh t\u1ef1: <strong>ki\u1ec3m tra<\/strong> b\u1eb1ng <code>df -i<\/code> \u0111\u1ec3 x\u00e1c \u0111\u1ecbnh ph\u00e2n v\u00f9ng v\u00e0 m\u1ee9c \u0111\u1ed9, <strong>d\u1ecdn d\u1eb9p<\/strong> \u0111\u00fang ngu\u1ed3n g\u00e2y ra nh\u01b0 session PHP, cache WordPress, mail queue, log, file t\u1ea1m, v\u00e0 <strong>ph\u00f2ng ng\u1eeba<\/strong> b\u1eb1ng logrotate, cronjob d\u1ecdn session t\u1ef1 \u0111\u1ed9ng c\u00f9ng script gi\u00e1m s\u00e1t inode \u0111\u1ecbnh k\u1ef3. \u0110\u1eebng ch\u1edd \u0111\u1ebfn khi website s\u1eadp m\u1edbi x\u1eed l\u00fd. Thi\u1ebft l\u1eadp gi\u00e1m s\u00e1t t\u1eeb h\u00f4m nay.<\/p>\n<p style=\"text-align: justify;\">N\u1ebfu server hi\u1ec7n t\u1ea1i th\u01b0\u1eddng xuy\u00ean ch\u1ea1m ng\u01b0\u1ee1ng inode d\u00f9 \u0111\u00e3 d\u1ecdn d\u1eb9p, c\u00f3 th\u1ec3 b\u1ea1n c\u1ea7n m\u1ed9t m\u00f4i tr\u01b0\u1eddng c\u00f3 t\u00e0i nguy\u00ean l\u01b0u tr\u1eef linh ho\u1ea1t h\u01a1n. Tham kh\u1ea3o <a href=\"https:\/\/interdata.vn\/thue-vps\/\" target=\"_blank\" rel=\"noopener\">c\u00e1c g\u00f3i VPS InterData<\/a> ho\u1eb7c <a href=\"https:\/\/interdata.vn\/cloud-server\/\" target=\"_blank\" rel=\"noopener\">Cloud Server<\/a> \u0111\u1ec3 c\u00f3 filesystem l\u1edbn h\u01a1n, SSD NVMe U.2 v\u00e0 to\u00e0n quy\u1ec1n root cho vi\u1ec7c c\u1ea5u h\u00ecnh.<\/p>\n<\/div>\n<p style=\"text-align: justify; font-size: 13px; font-style: italic; color: #6b7280; margin-top: 30px; border-top: 1px solid #E5E7EB; padding-top: 15px;\"><em>N\u1ed9i dung mang t\u00ednh tham kh\u1ea3o. L\u1ec7nh, c\u00fa ph\u00e1p, \u0111\u01b0\u1eddng d\u1eabn file v\u00e0 t\u00f9y ch\u1ecdn c\u1ea5u h\u00ecnh c\u00f3 th\u1ec3 thay \u0111\u1ed5i theo phi\u00ean b\u1ea3n h\u1ec7 \u0111i\u1ec1u h\u00e0nh, phi\u00ean b\u1ea3n ph\u1ea7n m\u1ec1m v\u00e0 m\u00f4i tr\u01b0\u1eddng c\u1ee5 th\u1ec3. N\u00ean ki\u1ec3m th\u1eed, sao l\u01b0u d\u1eef li\u1ec7u v\u00e0 \u0111\u00e1nh gi\u00e1 r\u1ee7i ro tr\u01b0\u1edbc khi \u00e1p d\u1ee5ng l\u00ean server production.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>X\u1eed l\u00fd t\u00ecnh tr\u1ea1ng full inode l\u00e0 vi\u1ec7c c\u1ea7n l\u00e0m ngay khi website b\u00e1o l\u1ed7i 500, kh\u00f4ng upload \u0111\u01b0\u1ee3c file ho\u1eb7c d\u1ecbch v\u1ee5 kh\u00f4ng kh\u1edfi \u0111\u1ed9ng, trong khi df -h v\u1eabn b\u00e1o \u1ed5 c\u1ee9ng c\u00f2n h\u00e0ng ch\u1ee5c GB tr\u1ed1ng. V\u1ea5n \u0111\u1ec1 kh\u00f4ng n\u1eb1m \u1edf dung l\u01b0\u1ee3ng l\u01b0u tr\u1eef m\u00e0 \u1edf inode \u0111\u00e3 c\u1ea1n. Ph\u1ea7n d\u01b0\u1edbi<\/p>\n","protected":false},"author":2,"featured_media":43680,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[161],"tags":[],"class_list":["post-43675","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-huong-dan-chung"],"_links":{"self":[{"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/posts\/43675","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=43675"}],"version-history":[{"count":5,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/posts\/43675\/revisions"}],"predecessor-version":[{"id":43684,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/posts\/43675\/revisions\/43684"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/media\/43680"}],"wp:attachment":[{"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/media?parent=43675"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/categories?post=43675"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/interdata.vn\/blog\/wp-json\/wp\/v2\/tags?post=43675"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}