บทความ · หมวด
เซิร์ฟเวอร์และ DevOps
Linux Docker nginx เครือข่าย และการดูแลระบบให้ทำงานต่อเนื่อง
11 บทความ
PostgreSQL 18: ใช้ uuidv7() แทน UUID v4 และเปิด async I/O ให้ถูก
PostgreSQL 18 มี uuidv7() ที่เรียงตามเวลา ทำให้ B-tree index เล็กและร้อนน้อยกว่า v4 และมี async I/O ผ่าน io_method เลือก worker หรือ io_uring พร้อมตัวอย่างคำนวณขนาด index
อ่าน 9 นาทีสำรองข้อมูล 3-2-1 บน VPS และซ้อม restore ทุกเดือน
backup ที่ไม่เคยลองกู้คือความหวัง ไม่ใช่แผน กฎ 3-2-1 และ 3-2-1-1-0 อะไรต้องสำรองบน VPS เข้ารหัสด้วย restic คำนวณ retention และพื้นที่ ซ้อมกู้ทุกเดือน
อ่าน 11 นาทีดิสก์เต็มจนเซิร์ฟเวอร์ล่ม: หาตัวการ แล้วจำกัด journald, logrotate, Docker logs
เซิร์ฟเวอร์หยุดเพราะดิสก์เต็ม หาว่าอะไรกินที่ด้วย df, du, ncdu ตัวการที่เจอบ่อย วิธีตั้งเพดาน journald, logrotate, Docker log และตั้งเตือนที่ 80%
อ่าน 11 นาทีรันแอปด้วย systemd แทน screen และ nohup: unit file, restart, timer แทน cron
เลิกเปิดแอปค้างไว้ใน screen หรือ nohup เขียน systemd unit ให้รันด้วย user แยก restart เองเมื่อพัง อ่าน env จากไฟล์ ล็อกสิทธิ์ และใช้ timer แทน cron
อ่าน 12 นาทีย้าย schema PostgreSQL ไม่ต้องปิดระบบ: expand, migrate, contract
เปลี่ยนชื่อคอลัมน์ใน 3 deploy โดยไม่มีใครเห็น error ล็อกตัวไหนต้องระวัง CREATE INDEX CONCURRENTLY, NOT VALID แล้ว VALIDATE, lock_timeout และ backfill ทีละก้อน
อ่าน 11 นาทีเซิร์ฟเวอร์ ที่บ้าน IP เปลี่ยนบ่อย ทำ DDNS เองด้วย API ของ DNS และ cron
ทำไม IP บ้านถึงเปลี่ยน และสคริปต์ Python สั้น ๆ ที่เช็ก IP ทุก 5 นาที แล้วแก้ A record ผ่าน API ของผู้ให้บริการ DNS ยกตัวอย่าง DigitalOcean พร้อมเรื่อง TTL และ token
อ่าน 13 นาทีย้ายเว็บแล้ว ทำไมบางคนยังเห็นเว็บเก่า เรื่อง DNS cache และ TTL จากเคสจริง
เปลี่ยน DNS ชี้ไป เซิร์ฟเวอร์ ใหม่แล้ว แต่ Google DNS ยังตอบ IP เก่าอยู่สองชั่วโมง ทำไมถึงเป็นแบบนั้น ดูได้ยังไงว่าใครเห็นอะไร และย้ายโดเมนครั้งหน้าให้ไม่ต้องรอ
อ่าน 9 นาทีให้ เซิร์ฟเวอร์ รายงานตัวทาง Telegram สถานะ เตือนภัย และปิดเครื่องอย่างนุ่มนวล
สคริปต์ Python ไม่กี่สิบบรรทัดบนเครื่องเล็ก ส่งสถานะ CPU แรม ดิสก์ เข้า Telegram เตือนเมื่อเกินเกณฑ์โดยไม่เตือนซ้ำ และปิดเครื่องตามเวลาแบบหยุด container ตามลำดับ
อ่าน 15 นาทีเก็บข้อมูลตามเวลาด้วย TimescaleDB บีบอัด สรุปรายชั่วโมง และเมื่อไหร่ห้ามลบ
ข้อมูลที่เข้าทุกไม่กี่วินาทีโตจนฐานข้อมูลช้า TimescaleDB แก้ด้วย hypertable บีบอัดของเก่า สรุปรายชั่วโมงอัตโนมัติ และเมื่อไหร่ไม่ควรตั้งให้ลบ พร้อม SQL จริง
อ่าน 8 นาทีDeploy ทีเดียวทั้งก้อน ไม่มีเว็บครึ่ง ๆ และย้อนกลับได้ในคำสั่งเดียว
ก๊อปไฟล์ทับโฟลเดอร์เว็บตรง ๆ ผู้ใช้จะเจอเว็บที่อัปโหลดไปครึ่งเดียว วิธีสลับโฟลเดอร์ที่เว็บนี้ใช้ ช่องว่างเล็ก ๆ ที่ยังเหลือ และแบบ symlink ที่สลับได้ทันที
อ่าน 7 นาทีรันฐานข้อมูล cache แอป และ HTTPS บนเครื่อง 2GB ให้รอด ตั้งเพดานทุกอย่างที่โตได้
เครื่องเล็กไม่ได้พังเพราะเล็ก แต่พังเพราะมีอะไรสักอย่างโตไม่มีเพดาน ค่าตั้ง PostgreSQL Redis log ของ Docker และ swap ที่ใช้จริงบนเครื่อง 2GB พร้อมเหตุผลของแต่ละตัว
อ่าน 8 นาที