Cùng một mã nguồn PHP và môi trường Nginx, cùng mở một trang quản trị (admin tool) có lượng dữ liệu render lớn F5 lúc được, lúc bị ngắt cụt mã HTML giữa chừng (trang web mất chân trang, giao diện vỡ, thiếu dữ liệu).

  1. Hiện tượng (Symptom) # Triệu chứng: Cùng một mã nguồn PHP và môi trường Nginx, cùng mở một trang quản trị (admin tool) có lượng dữ liệu render lớn: Một server chạy bình thường. Một server gặp tình trạng tải trang chập chờn: F5 lúc được, lúc bị ngắt cụt mã HTML giữa chừng (trang web mất chân trang, giao diện vỡ, thiếu dữ liệu). Đặc điểm gây nhiễu: Các thông số tài nguyên cốt lõi giữa 2 bên hoàn toàn giống nhau ( memory_limit = 4096M , max_execution_time = 0 , output_buffering = 0 , cấu hình pool PHP-FPM đồng nhất). 2. Nguyên nhân gốc rễ (Root Cause) # Cơ chế đệm response của Nginx kết hợp FastCGI: Khi PHP trả dữ liệu về Nginx, nếu payload nhỏ hơn bộ đệm trong RAM ( fastcgi_buffer_size / fastcgi_buffers , thường là 4KB–64KB tùy OS/arch), Nginx stream trực tiếp về client mượt mà. Khi dữ liệu HTML vượt quá kích thước buffer RAM, Nginx bắt buộc phải băm (hash) và ghi phần dữ liệu vượt ngưỡng vào thư mục tạm trên ổ cứng ( fastcgi_temp/ ). Lỗi phát sinh: Thư mục cài đặt Nginx hoặ...

Cấu trúc Case - shell linux

Cấu trúc case in esac, là cấu trúc rẽ nhánh trong lập trình shell trên Linux. Xem ví dụ sau sẽ rõ hơn:


[code]
#!/bin/bash
while :
do
  clear
  echo  -e  "\t\t+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+"
  echo  -e  "\t\t|             Main Menu               |"
  echo  -e  "\t\t+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+"
  echo  -e  "\t\t| [1] Xem ngay/gio hom nay            |"
  echo  -e  "\t\t| [2] Xem lich                        |"
  echo  -e  "\t\t| [3] Xem tat ca file/folder          |"
  echo  -e  "\t\t| [4] Exit/Stop                       |"
  echo  -e  "\t\t+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+"
  echo -n "Enter your choice [1-4]: "
  read choice   
  case $choice in    
     1) echo "Today is `date` "; read
        ;;  
     2) echo "Files in $PWD"; ls -l; read
        ;;
     3) cal ; read
        ;;
     4) exit 0
        ;;
     *) echo "Please choice 1,2,3,4."; read
        ;;
  esac 
done
[/code]

Nhận xét

Bài đăng phổ biến từ blog này

Gọi hàm nhiều cấp trong MIPS

Đệ quy trong MIPS