Trang chủ
Các bài mới
Latest activity
Biên tập viên
Diễn Đàn
Bài viết mới
Tìm kiếm diễn đàn
Tin Mới
Bài viết mới
New resources
Bài đăng tiểu sử mới
Hoạt động mới nhất
Resources
Latest reviews
Search resources
Thành Viên
Khách truy cập hiện tại
Bài mới trên trang cá nhân
Tìm kiếm bài đăng trong trang cá nhân
Tool
SMTool - Công cụ đăng bài tự động Facebook
50 SEO Tools
Photoshop online
Facebook Video Down
Cầu nguyện Genshin
Biolink
Genshin map
Đăng nhập
Đăng ký
Mới
Tìm kiếm
Tìm kiếm
Chỉ tìm trong tiêu đề
bởi:
Bài viết mới
Tìm kiếm diễn đàn
Menu
Đăng nhập
Đăng ký
Install the app
Install
28/06 cập nhật đăng ký đăng nhập qua Google & Facebook
Diễn Đàn
Thủ thuật
Thủ thuật internet
CyberPanel dead lock issue No request delivery notification has been received from LSAPI application
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Nội dung
<blockquote data-quote="TenHoshi" data-source="post: 28470" data-attributes="member: 1"><p><h3><img class="smilie smilie--emoji" loading="lazy" alt="🔧" title="Wrench :wrench:" src="https://cdn.jsdelivr.net/joypixels/assets/6.0/png/unicode/64/1f527.png" data-shortname=":wrench:" /> Cách xử lý lỗi</h3><p><strong>“No request delivery notification has been received from LSAPI application, possible dead lock”</strong></p><p>trên <strong>CyberPanel / OpenLiteSpeed</strong></p><p></p><h3><img class="smilie smilie--emoji" loading="lazy" alt="1️⃣" title="Keycap: 1 :one:" src="https://cdn.jsdelivr.net/joypixels/assets/6.0/png/unicode/64/0031-20e3.png" data-shortname=":one:" /> Lỗi này là gì?</h3><p>Thông báo:</p><p></p><p>[ICODE]No request delivery notification has been received from LSAPI application, possible dead lock[/ICODE]</p><p></p><p><img class="smilie smilie--emoji" loading="lazy" alt="👉" title="Backhand index pointing right :point_right:" src="https://cdn.jsdelivr.net/joypixels/assets/6.0/png/unicode/64/1f449.png" data-shortname=":point_right:" /> Có nghĩa là <strong>OpenLiteSpeed đã gửi request sang PHP (LSAPI / lsphp)</strong> nhưng <strong>không nhận được phản hồi đúng hạn</strong>, nên nghi ngờ PHP bị “kẹt”.</p><p></p><p><img class="smilie smilie--emoji" loading="lazy" alt="❗" title="Exclamation mark :exclamation:" src="https://cdn.jsdelivr.net/joypixels/assets/6.0/png/unicode/64/2757.png" data-shortname=":exclamation:" /> Đây <strong>không phải bug CyberPanel</strong>, mà là dấu hiệu backend (PHP / MySQL) đang bị nghẽn tạm thời.</p><p></p><h3><img class="smilie smilie--emoji" loading="lazy" alt="2️⃣" title="Keycap: 2 :two:" src="https://cdn.jsdelivr.net/joypixels/assets/6.0/png/unicode/64/0032-20e3.png" data-shortname=":two:" /> Vì sao lỗi này hay gặp trên CyberPanel?</h3><p>Do CyberPanel dùng <strong>OpenLiteSpeed + LSAPI</strong>, cơ chế giao tiếp khác với Nginx + php-fpm.</p><ul> <li data-xf-list-type="ul">Khi PHP <strong>bị block</strong> (chờ DB, IO, API ngoài…)</li> <li data-xf-list-type="ul">LiteSpeed <strong>không nhận được tín hiệu ACK</strong></li> <li data-xf-list-type="ul">⇒ ghi log “possible dead lock”</li> </ul><p>Trong khi đó:</p><ul> <li data-xf-list-type="ul">Nginx thường báo upstream timed out</li> <li data-xf-list-type="ul">Bản chất lỗi là <strong>giống nhau</strong></li> </ul><h3><img class="smilie smilie--emoji" loading="lazy" alt="3️⃣" title="Keycap: 3 :three:" src="https://cdn.jsdelivr.net/joypixels/assets/6.0/png/unicode/64/0033-20e3.png" data-shortname=":three:" /> Dấu hiệu thường thấy khi gặp lỗi</h3> <ul> <li data-xf-list-type="ul">CPU thấp, load thấp</li> <li data-xf-list-type="ul">Nhưng:<ul> <li data-xf-list-type="ul">RAM gần đầy</li> <li data-xf-list-type="ul">MySQL có <strong>rất nhiều connection ở trạng thái Sleep</strong></li> <li data-xf-list-type="ul">Log LiteSpeed spam dòng possible dead lock</li> </ul></li> <li data-xf-list-type="ul">Restart lsphp/MySQL thì <strong>hết tạm</strong>, nhưng vài giờ sau lại bị</li> </ul><h3><img class="smilie smilie--emoji" loading="lazy" alt="4️⃣" title="Keycap: 4 :four:" src="https://cdn.jsdelivr.net/joypixels/assets/6.0/png/unicode/64/0034-20e3.png" data-shortname=":four:" /> Nguyên nhân phổ biến (theo mức độ hay gặp)</h3><h4><img class="smilie smilie--emoji" loading="lazy" alt="🔴" title="Red circle :red_circle:" src="https://cdn.jsdelivr.net/joypixels/assets/6.0/png/unicode/64/1f534.png" data-shortname=":red_circle:" /> Nguyên nhân #1: MySQL giữ connection “Sleep” quá lâu</h4><p>MySQL mặc định:</p><p></p><p>[CODE]wait_timeout = 28800 (8 tiếng)</p><p>interactive_timeout = 28800[/CODE]</p><p></p><p><img class="smilie smilie--emoji" loading="lazy" alt="➡️" title="Right arrow :arrow_right:" src="https://cdn.jsdelivr.net/joypixels/assets/6.0/png/unicode/64/27a1.png" data-shortname=":arrow_right:" /> Nếu app:</p><ul> <li data-xf-list-type="ul">mở nhiều connection</li> <li data-xf-list-type="ul">không đóng đúng cách</li> <li data-xf-list-type="ul">hoặc dùng connection pool lớn</li> </ul><p><img class="smilie smilie--emoji" loading="lazy" alt="➡️" title="Right arrow :arrow_right:" src="https://cdn.jsdelivr.net/joypixels/assets/6.0/png/unicode/64/27a1.png" data-shortname=":arrow_right:" /> thì connection sẽ <strong>nằm Sleep hàng giờ</strong>, tốn RAM, làm PHP dễ bị kẹt khi traffic tăng.</p><h4><img class="smilie smilie--emoji" loading="lazy" alt="🔴" title="Red circle :red_circle:" src="https://cdn.jsdelivr.net/joypixels/assets/6.0/png/unicode/64/1f534.png" data-shortname=":red_circle:" /> Nguyên nhân #2: App backend mở quá nhiều connection</h4><p>Thường gặp khi:</p><ul> <li data-xf-list-type="ul">Node.js dùng pool lớn + PM2 cluster</li> <li data-xf-list-type="ul">PHP dùng persistent connection</li> <li data-xf-list-type="ul">Cron / job mở connection nhưng không đóng</li> </ul><p></p><p><img class="smilie smilie--emoji" loading="lazy" alt="➡️" title="Right arrow :arrow_right:" src="https://cdn.jsdelivr.net/joypixels/assets/6.0/png/unicode/64/27a1.png" data-shortname=":arrow_right:" /> Mỗi request chiếm 1 connection → dồn lại rất nhanh.</p><p></p><h4><img class="smilie smilie--emoji" loading="lazy" alt="🔴" title="Red circle :red_circle:" src="https://cdn.jsdelivr.net/joypixels/assets/6.0/png/unicode/64/1f534.png" data-shortname=":red_circle:" /> Nguyên nhân #3: DB lock / query nặng ngắn hạn</h4><p>Ví dụ:</p><ul> <li data-xf-list-type="ul">ALTER TABLE</li> <li data-xf-list-type="ul">metadata lock</li> <li data-xf-list-type="ul">query thiếu index</li> </ul><p><img class="smilie smilie--emoji" loading="lazy" alt="➡️" title="Right arrow :arrow_right:" src="https://cdn.jsdelivr.net/joypixels/assets/6.0/png/unicode/64/27a1.png" data-shortname=":arrow_right:" /> PHP chờ DB → LSAPI không phản hồi kịp.</p><p></p><h3><img class="smilie smilie--emoji" loading="lazy" alt="5️⃣" title="Keycap: 5 :five:" src="https://cdn.jsdelivr.net/joypixels/assets/6.0/png/unicode/64/0035-20e3.png" data-shortname=":five:" /> Cách kiểm tra nhanh (khuyến nghị)</h3><h4>Kiểm tra MySQL connection</h4><p></p><p>[ICODE]SHOW FULL PROCESSLIST;[/ICODE]</p><p></p><p>Nếu thấy:</p><ul> <li data-xf-list-type="ul">nhiều dòng Command = Sleep</li> <li data-xf-list-type="ul">Time lên tới hàng nghìn giây</li> </ul><p><img class="smilie smilie--emoji" loading="lazy" alt="➡️" title="Right arrow :arrow_right:" src="https://cdn.jsdelivr.net/joypixels/assets/6.0/png/unicode/64/27a1.png" data-shortname=":arrow_right:" /> chính là vấn đề.</p><h4>Xem nhóm connection Sleep theo user</h4><p></p><p>[CODE]SELECT user, db, COUNT(*) conns, MAX(time) max_sleep</p><p>FROM information_schema.processlist</p><p>WHERE command='Sleep'</p><p>GROUP BY user, db</p><p>ORDER BY conns DESC;[/CODE]</p><p></p><p><img class="smilie smilie--emoji" loading="lazy" alt="➡️" title="Right arrow :arrow_right:" src="https://cdn.jsdelivr.net/joypixels/assets/6.0/png/unicode/64/27a1.png" data-shortname=":arrow_right:" /> User nào nhiều nhất = app gây ra vấn đề.</p><p></p><h3><img class="smilie smilie--emoji" loading="lazy" alt="6️⃣" title="Keycap: 6 :six:" src="https://cdn.jsdelivr.net/joypixels/assets/6.0/png/unicode/64/0036-20e3.png" data-shortname=":six:" /> Cách FIX nhanh – an toàn – hiệu quả</h3><h4><img class="smilie smilie--emoji" loading="lazy" alt="✅" title="Check mark button :white_check_mark:" src="https://cdn.jsdelivr.net/joypixels/assets/6.0/png/unicode/64/2705.png" data-shortname=":white_check_mark:" /> Bước 1: Giảm timeout MySQL (quan trọng nhất)</h4><p></p><p>Áp dụng ngay, không cần restart:</p><p></p><p>[CODE]SET GLOBAL wait_timeout = 120;</p><p>SET GLOBAL interactive_timeout = 120;[/CODE]</p><p></p><p><img class="smilie smilie--emoji" loading="lazy" alt="📌" title="Pushpin :pushpin:" src="https://cdn.jsdelivr.net/joypixels/assets/6.0/png/unicode/64/1f4cc.png" data-shortname=":pushpin:" /> Với API, có thể để <strong>60–120 giây</strong> là hợp lý.</p><p></p><p>Sau đó kiểm tra lại:</p><p></p><p>[ICODE]SHOW VARIABLES LIKE 'wait_timeout';[/ICODE]</p><p></p><h4><img class="smilie smilie--emoji" loading="lazy" alt="✅" title="Check mark button :white_check_mark:" src="https://cdn.jsdelivr.net/joypixels/assets/6.0/png/unicode/64/2705.png" data-shortname=":white_check_mark:" /> Bước 2: Ghi vĩnh viễn vào config MySQL</h4><p></p><p>Mở file cấu hình MySQL (tuỳ hệ):</p><ul> <li data-xf-list-type="ul">/etc/mysql/my.cnf</li> <li data-xf-list-type="ul">/etc/mysql/mysql.conf.d/mysqld.cnf</li> <li data-xf-list-type="ul">/etc/my.cnf</li> </ul><p>Thêm:</p><p></p><p>[CODE][mysqld]</p><p>wait_timeout=120</p><p>interactive_timeout=120[/CODE]</p><p></p><p>Restart MySQL.</p><p></p><h4><img class="smilie smilie--emoji" loading="lazy" alt="✅" title="Check mark button :white_check_mark:" src="https://cdn.jsdelivr.net/joypixels/assets/6.0/png/unicode/64/2705.png" data-shortname=":white_check_mark:" /> Bước 3: Dọn connection Sleep quá lâu (tùy chọn)</h4><p></p><p>Chỉ kill connection đang <strong>Sleep</strong>, không ảnh hưởng query đang chạy:</p><p></p><p>[CODE]SELECT CONCAT('KILL ', id, ';')</p><p>FROM information_schema.processlist</p><p>WHERE command='Sleep' AND time > 300;[/CODE]</p><p></p><p>Copy output và chạy.</p><p></p><h3><img class="smilie smilie--emoji" loading="lazy" alt="7️⃣" title="Keycap: 7 :seven:" src="https://cdn.jsdelivr.net/joypixels/assets/6.0/png/unicode/64/0037-20e3.png" data-shortname=":seven:" /> Fix gốc ở application (rất quan trọng)</h3><h4><img class="smilie smilie--emoji" loading="lazy" alt="🔹" title="Small blue diamond :small_blue_diamond:" src="https://cdn.jsdelivr.net/joypixels/assets/6.0/png/unicode/64/1f539.png" data-shortname=":small_blue_diamond:" /> Nếu backend là Node.js</h4> <ul> <li data-xf-list-type="ul">Không để pool quá lớn</li> <li data-xf-list-type="ul">Pool nên giới hạn:<ul> <li data-xf-list-type="ul">max: 5–10</li> <li data-xf-list-type="ul">idle: 30–60s</li> </ul></li> <li data-xf-list-type="ul">Nếu dùng PM2 cluster → nhớ <strong>pool × số instance</strong></li> </ul><p>Ví dụ:</p><p></p><p>[CODE]pool: {</p><p>max: 10,</p><p>min: 0,</p><p>idle: 60000,</p><p>acquire: 30000</p><p>}[/CODE]</p><p></p><h4><img class="smilie smilie--emoji" loading="lazy" alt="🔹" title="Small blue diamond :small_blue_diamond:" src="https://cdn.jsdelivr.net/joypixels/assets/6.0/png/unicode/64/1f539.png" data-shortname=":small_blue_diamond:" /> Nếu backend là PHP</h4> <ul> <li data-xf-list-type="ul">Tránh dùng <strong>persistent connection</strong> nếu không kiểm soát tốt</li> <li data-xf-list-type="ul">Đảm bảo đóng connection:<ul> <li data-xf-list-type="ul">PDO: $pdo = null;</li> <li data-xf-list-type="ul">mysqli: $mysqli->close();</li> </ul></li> <li data-xf-list-type="ul">Đặc biệt chú ý <strong>cron / script chạy nền</strong></li> </ul><h3><img class="smilie smilie--emoji" loading="lazy" alt="8️⃣" title="Keycap: 8 :eight:" src="https://cdn.jsdelivr.net/joypixels/assets/6.0/png/unicode/64/0038-20e3.png" data-shortname=":eight:" /> Gợi ý cấu hình phù hợp VPS 4GB</h3> <ul> <li data-xf-list-type="ul">MySQL:<ul> <li data-xf-list-type="ul">wait_timeout = 60–120</li> </ul></li> <li data-xf-list-type="ul">lsphp (CyberPanel):<ul> <li data-xf-list-type="ul"><strong>8–10 children</strong> (không nên để 16 trên RAM thấp)</li> </ul></li> <li data-xf-list-type="ul">Có traffic public:<ul> <li data-xf-list-type="ul">thêm rate limit (Cloudflare / firewall)</li> </ul></li> </ul><h3><img class="smilie smilie--emoji" loading="lazy" alt="9️⃣" title="Keycap: 9 :nine:" src="https://cdn.jsdelivr.net/joypixels/assets/6.0/png/unicode/64/0039-20e3.png" data-shortname=":nine:" /> Kết luận</h3></blockquote><p></p>
[QUOTE="TenHoshi, post: 28470, member: 1"] [HEADING=2]🔧 Cách xử lý lỗi[/HEADING] [B]“No request delivery notification has been received from LSAPI application, possible dead lock”[/B] trên [B]CyberPanel / OpenLiteSpeed[/B] [HEADING=2]1️⃣ Lỗi này là gì?[/HEADING] Thông báo: [ICODE]No request delivery notification has been received from LSAPI application, possible dead lock[/ICODE] 👉 Có nghĩa là [B]OpenLiteSpeed đã gửi request sang PHP (LSAPI / lsphp)[/B] nhưng [B]không nhận được phản hồi đúng hạn[/B], nên nghi ngờ PHP bị “kẹt”. ❗ Đây [B]không phải bug CyberPanel[/B], mà là dấu hiệu backend (PHP / MySQL) đang bị nghẽn tạm thời. [HEADING=2]2️⃣ Vì sao lỗi này hay gặp trên CyberPanel?[/HEADING] Do CyberPanel dùng [B]OpenLiteSpeed + LSAPI[/B], cơ chế giao tiếp khác với Nginx + php-fpm. [LIST] [*]Khi PHP [B]bị block[/B] (chờ DB, IO, API ngoài…) [*]LiteSpeed [B]không nhận được tín hiệu ACK[/B] [*]⇒ ghi log “possible dead lock” [/LIST] Trong khi đó: [LIST] [*]Nginx thường báo upstream timed out [*]Bản chất lỗi là [B]giống nhau[/B] [/LIST] [HEADING=2]3️⃣ Dấu hiệu thường thấy khi gặp lỗi[/HEADING] [LIST] [*]CPU thấp, load thấp [*]Nhưng: [LIST] [*]RAM gần đầy [*]MySQL có [B]rất nhiều connection ở trạng thái Sleep[/B] [*]Log LiteSpeed spam dòng possible dead lock [/LIST] [*]Restart lsphp/MySQL thì [B]hết tạm[/B], nhưng vài giờ sau lại bị [/LIST] [HEADING=2]4️⃣ Nguyên nhân phổ biến (theo mức độ hay gặp)[/HEADING] [HEADING=3]🔴 Nguyên nhân #1: MySQL giữ connection “Sleep” quá lâu[/HEADING] MySQL mặc định: [CODE]wait_timeout = 28800 (8 tiếng) interactive_timeout = 28800[/CODE] ➡️ Nếu app: [LIST] [*]mở nhiều connection [*]không đóng đúng cách [*]hoặc dùng connection pool lớn [/LIST] ➡️ thì connection sẽ [B]nằm Sleep hàng giờ[/B], tốn RAM, làm PHP dễ bị kẹt khi traffic tăng. [HEADING=3]🔴 Nguyên nhân #2: App backend mở quá nhiều connection[/HEADING] Thường gặp khi: [LIST] [*]Node.js dùng pool lớn + PM2 cluster [*]PHP dùng persistent connection [*]Cron / job mở connection nhưng không đóng [/LIST] ➡️ Mỗi request chiếm 1 connection → dồn lại rất nhanh. [HEADING=3]🔴 Nguyên nhân #3: DB lock / query nặng ngắn hạn[/HEADING] Ví dụ: [LIST] [*]ALTER TABLE [*]metadata lock [*]query thiếu index [/LIST] ➡️ PHP chờ DB → LSAPI không phản hồi kịp. [HEADING=2]5️⃣ Cách kiểm tra nhanh (khuyến nghị)[/HEADING] [HEADING=3]Kiểm tra MySQL connection[/HEADING] [ICODE]SHOW FULL PROCESSLIST;[/ICODE] Nếu thấy: [LIST] [*]nhiều dòng Command = Sleep [*]Time lên tới hàng nghìn giây [/LIST] ➡️ chính là vấn đề. [HEADING=3]Xem nhóm connection Sleep theo user[/HEADING] [CODE]SELECT user, db, COUNT(*) conns, MAX(time) max_sleep FROM information_schema.processlist WHERE command='Sleep' GROUP BY user, db ORDER BY conns DESC;[/CODE] ➡️ User nào nhiều nhất = app gây ra vấn đề. [HEADING=2]6️⃣ Cách FIX nhanh – an toàn – hiệu quả[/HEADING] [HEADING=3]✅ Bước 1: Giảm timeout MySQL (quan trọng nhất)[/HEADING] Áp dụng ngay, không cần restart: [CODE]SET GLOBAL wait_timeout = 120; SET GLOBAL interactive_timeout = 120;[/CODE] 📌 Với API, có thể để [B]60–120 giây[/B] là hợp lý. Sau đó kiểm tra lại: [ICODE]SHOW VARIABLES LIKE 'wait_timeout';[/ICODE] [HEADING=3]✅ Bước 2: Ghi vĩnh viễn vào config MySQL[/HEADING] Mở file cấu hình MySQL (tuỳ hệ): [LIST] [*]/etc/mysql/my.cnf [*]/etc/mysql/mysql.conf.d/mysqld.cnf [*]/etc/my.cnf [/LIST] Thêm: [CODE][mysqld] wait_timeout=120 interactive_timeout=120[/CODE] Restart MySQL. [HEADING=3]✅ Bước 3: Dọn connection Sleep quá lâu (tùy chọn)[/HEADING] Chỉ kill connection đang [B]Sleep[/B], không ảnh hưởng query đang chạy: [CODE]SELECT CONCAT('KILL ', id, ';') FROM information_schema.processlist WHERE command='Sleep' AND time > 300;[/CODE] Copy output và chạy. [HEADING=2]7️⃣ Fix gốc ở application (rất quan trọng)[/HEADING] [HEADING=3]🔹 Nếu backend là Node.js[/HEADING] [LIST] [*]Không để pool quá lớn [*]Pool nên giới hạn: [LIST] [*]max: 5–10 [*]idle: 30–60s [/LIST] [*]Nếu dùng PM2 cluster → nhớ [B]pool × số instance[/B] [/LIST] Ví dụ: [CODE]pool: { max: 10, min: 0, idle: 60000, acquire: 30000 }[/CODE] [HEADING=3]🔹 Nếu backend là PHP[/HEADING] [LIST] [*]Tránh dùng [B]persistent connection[/B] nếu không kiểm soát tốt [*]Đảm bảo đóng connection: [LIST] [*]PDO: $pdo = null; [*]mysqli: $mysqli->close(); [/LIST] [*]Đặc biệt chú ý [B]cron / script chạy nền[/B] [/LIST] [HEADING=2]8️⃣ Gợi ý cấu hình phù hợp VPS 4GB[/HEADING] [LIST] [*]MySQL: [LIST] [*]wait_timeout = 60–120 [/LIST] [*]lsphp (CyberPanel): [LIST] [*][B]8–10 children[/B] (không nên để 16 trên RAM thấp) [/LIST] [*]Có traffic public: [LIST] [*]thêm rate limit (Cloudflare / firewall) [/LIST] [/LIST] [HEADING=2]9️⃣ Kết luận[/HEADING] [/QUOTE]
Name
Xác nhận
Gửi đi
Diễn Đàn
Thủ thuật
Thủ thuật internet
CyberPanel dead lock issue No request delivery notification has been received from LSAPI application
Top