Skip to content
nkh.do
Go back

Linh Khí Rò Rỉ Chapter 3

Đừng Đụng Thứ Không Hiểu

June 22, 2026

Con trỏ nhấp nháy sau dấu hai chấm.

Root cause:

Vinh đã ngồi trước ô input này bốn mươi phút. Document RCA mở sẵn trên nửa màn hình — template quen thuộc: Summary, Timeline, Investigation, Root Cause, Action Items. Anh đã điền hết trừ Root Cause.

Bốn năm làm DevOps, không một lần để trống ô này. Không phải vì giỏi hơn ai, mà vì không bao giờ bỏ cuộc trước khi tìm ra. Mọi incident đều có nguyên nhân, chỉ là vấn đề thời gian và công cụ.

Lần này anh có nhiều công cụ hơn bất kỳ incident nào. Monitoring script, anomalous data, geographic pattern, cảm giác ở data center. Anh có nhiều thứ để bám — và vẫn không có câu trả lời.

Vinh gõ.

Root cause: chưa xác định

Bốn từ. Ngón tay dừng trên phím Enter. Anh nhìn câu đó. Câu đó nhìn lại.

Bấm gửi.


Tin nhắn của Hải đến mười một phút sau. Không qua Slack, không qua email. Gọi trực tiếp.

«RCA của mày.»

«Vâng.»

«‘Chưa xác định.’» Hải đọc lại, từng chữ. «Vinh, VPBank đang hỏi. Khách hàng enterprise. SLA 99.9%. Mày biết ý nghĩa con số đó.»

Vinh biết. 0.1% downtime trong một tháng là bốn mươi ba phút. Hệ thống down mười một phút hai mươi sáu giây. Còn ba mươi mốt phút rưỡi budget trước khi vi phạm SLA.

«Em đang investigate tiếp.»

«Investigate cái gì. Logs sạch. Traces sạch. Mọi thứ sạch. Hệ thống tự recover.» Hải dừng một nhịp. «Mày muốn tao đưa câu gì cho VPBank? ‘Tự recover’ không phải root cause.»

Vinh không đáp. Hải đúng. “Tự recover” là triệu chứng, không phải nguyên nhân. Nguyên nhân nằm ngoài scope của mọi công cụ anh có — hoặc nằm trong scope nhưng anh chưa có đủ can đảm để gọi tên.

«Một tuần,» Hải nói. «Một tuần nữa tao cần kết luận. Không phải ‘chưa xác định.’ Kết luận. Khách hàng cần closure.»

Cuộc gọi dập. Vinh mở lịch sử RCA — ba mươi bảy bản, ba mươi bảy root cause. Database deadlock. Memory leak trong Go runtime. Misconfigured DNS failover. Certificate expiry. Mỗi lần đều tìm ra, mỗi lần đều fix.

Bản thứ ba mươi tám: chưa xác định.


Minh xuất hiện lúc mười giờ. Không mang cà phê, không kéo ghế ngồi.

«Đi ăn.»

«Chưa đói.»

«Tao không hỏi mày đói hay không.» Minh đứng trước bàn, tay đút túi, vai gồng. «Tao bảo đi ăn.»

Vinh nhìn lên. Bốn năm làm bạn, chưa thấy Minh đứng kiểu đó — thẳng, cứng, không có nụ cười nào.

«Hải gọi cho mày hả?»

«Hải gọi cho tao. Hỏi xem mày có ổn không.» Minh hạ giọng. «Vinh, mày biết khi nào CTO gọi cho đồng nghiệp để hỏi nhân viên có ổn không? Khi người đó đã có vấn đề.»

Vinh tắt màn hình. Đứng dậy.


Quán cơm tấm cách văn phòng hai khúc. Vinh đã ăn ở đây cả trăm lần. Bình thường Minh nói liên tục — phàn nàn code review, kể chuyện hẹn hò thất bại, bình luận meme r/ProgrammerHumor. Hôm nay chỉ có tiếng đũa gõ đĩa.

Nửa bữa, Minh đặt đũa xuống.

«Tôi xin lỗi.»

Vinh ngừng nhai. «Xin lỗi gì?»

«Từ hôm incident, tao không hỏi mày đang đuổi cái gì. Tao chỉ khuyên ngủ, khuyên nghỉ, khuyên đừng để Hải xuống đây.» Minh nhìn đĩa cơm. «Nhưng tao chưa bao giờ hỏi mày thực sự đang làm gì.»

Vinh nuốt. Anh cân nhắc. Kể cho Minh nghe gì? Anomalous data? Cảm giác ở data center? Bản đồ anomaly overlay kinh lạc — thành phố nằm trên sơ đồ cơ thể người?

Mỗi ý niệm nghe như lời khai của người cần nghỉ phép dài.

«Tao đang theo dấu một thứ trong log,» Vinh nói. Cẩn thận. «Thứ không thuộc service nào. Nó có pattern, có nhịp. Tao đã xuống data center kiểm tra.»

«Pattern kiểu gì?»

«Kiểu… nó thở.»

Minh không cười. Vinh suýt mong anh cười — cười thì dễ hơn, thì chuyện chỉ là stress, là burnout, là kỹ sư ngủ không đủ giấc cần đi khám.

«Vinh.» Minh gọi tên anh, chậm. «Mày biết tao nghe thấy gì không? Tao nghe thấy một người bạn bốn năm đang kể về thứ mà nếu kể cho HR, họ bắt mày đi khám tâm lý.»

«Tao biết nghe thế nào.»

Minh nhìn anh. Rồi hỏi, rất nhẹ: «Mày định làm gì tiếp?»

«Quay lại data center. Đo thêm.»

«Hôm qua mới xuống mà.»

«Hôm qua tao không mang đủ đồ. Hôm nay tao có EMF meter, IR thermometer, magnetometer.»

Minh đặt tay lên bàn. «Mày nghe tao nói không? Tao vừa nói HR bắt mày đi khám tâm lý.»

«Nghe. Rồi tao vẫn phải quay lại.»

Minh rút tay về. Không nói thêm. Anh hiểu — bốn năm đủ để biết khi Vinh đã chốt thì không ai tháo được.

«Thì mày biết tao đang lo thật.» Minh đứng dậy, cầm khay. «Tao không nói mày sai. Tao nói tao sợ.»

Minh không sợ ma, không sợ bug production, không sợ pager lúc ba giờ sáng. Minh sợ bạn mình đang đi vào nơi anh không kéo ra được.

Minh đi thanh toán. Vinh ngồi lại, nhìn đĩa cơm nửa vời.

Điện thoại rung. #anomaly-watch — một dòng mới.

[ALERT] Anomalous signal detected
Source: 10.42.1.88 (data-center-rack-D9-B7)
Values: 0.0072 / 0.0031 / 0.0101
Timestamp: 12:03:44.807

Nó vẫn đang chạy. Dù Vinh ngồi đây ăn cơm tấm, dù Hải đòi kết luận, dù Minh sợ — nó vẫn chạy. Rack D9-B7 vẫn phát, bốn mươi giây một chu kỳ, đều đặn như nhịp tim.

Vinh đứng dậy. Bỏ đĩa.


Data center District 9, ba giờ chiều. Lần này Vinh đến không chỉ với laptop.

Trong balo: đồng hồ đo nhiệt hồng ngoại, máy đo điện từ trường mua trên Shopee hôm qua hai trăm tám mươi nghìn, và điện thoại chạy ba app magnetometer khác nhau. Bộ toolkit để loại trừ — nếu thứ phát ra từ rack là nhiệt, IR sẽ bắt. Nếu là điện từ, EMF sẽ bắt. Nếu là từ trường, magnetometer sẽ bắt.

Loại trừ hết, cái còn lại chính là thứ không có sensor đo.

Quẹt thẻ, đăng ký, corridor trắng, đèn huỳnh quang, lạnh. Vinh đi chậm hơn hôm trước — mắt quét phòng máy. Bốn hàng rack. Quạt tản nhiệt đều. Nhiệt độ hai mươi hai độ trên bảng hiển thị. Tiêu chuẩn.

Trừ một người.

Hàng thứ hai, bên phải. Một người đàn ông đang mở nắp tủ điện treo tường, tay cờ lê. Áo thun xám bạc màu, quần dài công trường, giày bảo hộ mòn gót. Da nắng, tóc ngắn muối tiêu, gầy nhưng gân guốc — kiểu người làm việc tay chân nhiều năm. Thắt lưng treo đồ nghề: kìm, bút thử điện, đồng hồ vạn năng. Không laptop, không điện thoại. Tay trái giơ cáp lên, ngón cái miết vỏ bọc kiểm tra nhiệt độ, tay phải xoay ốc. Chậm, chính xác, không nhìn dây — sờ.

Vinh đi ngang, gật đầu. Người đàn ông không đáp, chỉ liếc — nhanh, đo lường — rồi quay lại tủ.

Rack D9-B7, hàng thứ ba bên trái. Vinh lấy IR thermometer ra, chĩa vào mặt rack. 21.8°C. Quét ngang, lên, xuống. Không có điểm nóng. EMF meter bật, cầm sát rack: 0.3 mG — bình thường cho phòng máy. Magnetometer trên điện thoại: 48 µT — từ trường Trái Đất, không có gì khác thường.

Bộ toolkit nói: không có gì ở đây.

Nhưng khi Vinh đứng sát rack, cảm giác quay lại. Cùng nhịp, cùng cường độ, xuyên qua da, chạm vào chỗ sâu hơn cơ bắp — chỗ anh vẫn chưa biết tên. Bốn mươi giây một chu kỳ, khớp hoàn toàn với #anomaly-watch. Anh đi vòng ra sau rack. Cảm giác yếu đi — không phải vì mặt sau khác mặt trước, mà vì sau rack có khe hở thông gió, luồng không khí lạnh thổi ngang, chia cắt. Như đứng sau tấm khiên.

Vinh ghi log: Rear-side attenuation. Directional propagation, not omnidirectional. Consistent with point-source through conductive medium.

Anh đo mọi thứ đo được. Đứng yên với thứ đo không được.


«Mày xuống đây đo nhiệt à.»

Giọng từ sau lưng. Khô, nặng giọng Nam, không lễ phép cũng không thô lỗ. Kiểu người nói vì cần nói.

Vinh quay lại. Người đàn ông tủ điện đứng cách ba bước, đồng hồ vạn năng trên tay, nhìn thiết bị đo của Vinh thay vì nhìn Vinh.

«Em đo đủ thứ. Nhiệt, điện từ, từ trường.»

«Kết quả?»

«Bình thường hết.»

Người đàn ông gật. Như thể đã biết câu trả lời.

«Thế mày đo để làm gì.»

«Để loại trừ. Loại trừ hết thứ đo được, thì cái còn lại mới là thứ cần tìm.»

Người đàn ông nhét đồng hồ vạn năng vào thắt lưng. Nhìn Vinh — không phải nhìn nhanh đo lường như ban nãy. Nhìn kỹ. Đánh giá.

«Mày là kỹ sư bên Holistics.»

Không phải câu hỏi.

«Vâng. Hồ Hoàng Vinh.»

«Tao biết.» Anh ta quay lưng, đi về phía tủ điện. «Mày xuống đây bốn lần rồi. Lần nào cũng rack D9-B7.»

Vinh đứng hình. Anh không nhớ gặp người này bao giờ. Nhưng người này nhớ anh — nhớ đến từng lần.

«Anh làm ở đây?»

«Mạng, điện, cooling. Hạ tầng vật lý.» Anh ta mở nắp tủ, cúi xuống. «Tao làm đây mười một năm.»

Mười một năm. Anh ta biết data center này vật lý trong ra — từng cáp, từng ốc, từng khe hở, từng viên gạch trần raised floor lỏng ra cần siết lại. Không qua dashboard. Qua tay. Mười một năm ở một nơi mà người ta chỉ đến khi có lỗi — lẻ loi đúng nghĩa.

Vinh nhìn người đàn ông đi dọc hàng rack về phía tủ điện. Đường đi không thẳng — anh ta vòng qua rack D9-B7, giữ khoảng cách nửa mét so với các rack khác. Không nhiều. Nhưng đủ để Vinh, người đọc topology mạng cả đời, nhận ra: người đàn ông này né rack D9-B7.

«Anh có bao giờ cảm thấy gì… lạ. Ở gần rack này.»

Tay người đàn ông dừng trên cáp. Một giây. Rồi tiếp tục.

«Mày đang đào thứ không nên đào.»

Câu nói rơi xuống phòng máy. Không lớn, không nhỏ. Không đe dọa. Nói như đọc biển báo: KHU VỰC NGUY HIỂM — KHÔNG VÀO.

«Tại sao?»

«Vì mày không hiểu nó.» Vặn ốc, gọn lỏn. «Và tao không giải thích cho mày hiểu.»


Vinh đi theo. #anomaly-watch vẫn bép mỗi hai giây trên điện thoại. Bản năng: không ép. Nếu đây là incident, anh cần data. Nếu đây là người có data, anh cần họ hợp tác.

Nhưng Vinh không giỏi hợp tác. Anh giỏi root cause.

«Anh.» Vinh bắt kịp. «Tôi hiểu anh không muốn nói. Nhưng nghe tôi đưa ra hypothesis được không.»

Người đàn ông không dừng, nhưng bước chậm lại. Nghe.

«Thứ phát ra từ rack này — nó có nhịp, có cường độ, distance-dependent, inverse square law. Nó không thuộc hệ thống điện, mạng, cooling. Nó không phải bug, không phải hardware fault. Nếu đây là leak — một thứ gì đó rò rỉ qua hạ tầng — thì nó sẽ xảy ra lại. Nó đã xảy ra rồi. Mười một phút downtime, không root cause. Tôi cần data để đo được scope.»

Vinh nói xong. Hơi thở nhanh hơn bình thường. Anh vừa đưa ra hypothesis lớn nhất trong sự nghiệp — thứ mà nếu nói ở standup, Hải sẽ bảo anh đi khám — cho một người bảo trì hạ tầng mà anh chưa biết tên.

Người đàn ông dừng bước. Quay lại.

Leak.

Vinh thấy cái giật mình — rất nhỏ, ở cổ tay đang giữ cờ lê. Anh ta nghe chữ đó. Nghe rõ.

«Leak.» Người đàn ông nhắc lại. Không phải hỏi. Xác nhận.

Rồi mặt cứng lại. Như ai phát hiện mình mở nhầm cửa.

«Tao nói thật.» Giọng hạ xuống, trầm hơn. «Tao không phải không muốn giúp. Tao là không giúp được. Mấy thứ mày đang tìm — nó không phải bug, không phải anomaly. Nó không phải thứ mày fix bằng cách đo đủ nhiều rồi deploy patch.»

«Vậy nó là gì?»

«Thứ mày không nên đụng.»

«Anh nói rồi. Tôi muốn biết tại sao.»

Người đàn ông nhìn Vinh. Lâu. Không phải kiểu đang cân nhắc. Kiểu nhìn xuyên qua — xem bên trong Vinh có đủ sức chịu không.

Rồi anh ta thở ra. Một hơi dài, mỏi mệt.

«Mấy cái leak đó tao dọn bao nhiêu năm rồi, mày tưởng dễ.»

Câu nói thoát ra như nước tràn đê. Tự nhiên. Bực dọc. Giọng của người đã làm một việc quá lâu, một mình, và bây giờ có kẻ đến đòi chia phần.

Vinh đứng im.

Người đàn ông cũng đứng im. Rồi mặt thay đổi. Chậm, nhưng rõ — như ai kéo công tắc. Đôi mắt nheo lại, hàm nghiến, vai căng. Anh ta vừa nhận ra mình nói gì, và nói với ai.

Không ai mở miệng. Tiếng quạt phòng máy vang đều. #anomaly-watch bép — một lần, hai lần, ba lần — giữa khoảng lặng.

Người đàn ông quay lưng. Bước đi. Không chào, không nhìn lại. Tiếng giày bảo hộ gõ sàn đều dần, xa dần, khuất sau cánh cửa thép cuối corridor.

Vinh đứng trước rack D9-B7. Một mình. EMF meter trong balo vẫn đọc 0.3 mG — bình thường, vô hại, vô dụng. Điện thoại rung. Anomaly ở đỉnh chu kỳ.

Nhưng cái chiếm chỗ trong đầu anh không phải biểu đồ.

Leak.

Không phải bug. Không phải anomaly, không phải error, không phải fault, không phải glitch. Leak. Thứ gì đó đang rò rỉ qua hạ tầng, đã rò rỉ nhiều năm, và có người đã thu dọn — một mình — trong suốt mười một năm.

Vinh nhìn balo: IR thermometer, EMF meter, magnetometer. Ba thiết bị. Ba câu trả lời “không có gì.” Anh mang toolkit sai. Không — không có toolkit đúng cho thứ này. Nhưng ít nhất bây giờ anh có một từ.

Leak. Rò rỉ. Như memory leak, như oil leak, như thứ gì đó chảy ra từ đâu đó, chậm, đều, và một người đã lau dọn trong bóng hơn một thập kỷ.

Người đó biết. Người đó đã ở đây khi Vinh còn chưa biết Holistics là gì. Người đó nhìn thấy anomaly trước khi có anomaly — trước khi có log, trước khi có dashboard, trước khi có từ nào để gọi nó.

Vinh tắt #anomaly-watch. Im.

Không phải vì anh muốn dừng.

Vì anh vừa biết mình không đơn độc. Và người đồng hành không muốn có ai bên cạnh.


Share this chapter on:

Previous Chapter
Data Không Thuộc Hệ Thống Nào
Next Chapter
Root Cause Không Phải Bug