Bài đăng

Understand Linux Load Averages and Monitor Performance of Linux

- What is LoadAvg ?:   Load average – is the average system load calculated over a given period of time of 1, 5 and 15 minutes.    In Linux, the load-average is technically believed to be a running average of processes in it’s (kernel) execution queue tagged as running or uninterruptible - Understanding System Average Load   sử dụng command "w" đê xem thông tin load của server : 23:16:49 up 10:49, 5 user, load average: 1.00, 0.40, 3.35 On a single core system this would mean: - The CPU was fully (100%) utilized on average; 1 processes was running on the CPU (1.00) over the last 1 minute. - The CPU was idle by 60% on average; no processes were waiting for CPU time (0.40) over the last 5 minutes. - The CPU was overloaded by 235% on average; 2.35 processes were waiting for CPU time (3.35) over the last 15 minutes. On a dual-core system this would mean: - The one CPU was 100% idle on average, one CPU was being used; no processes were waiting for CPU time(1....

Một số lỗi vận hành k8s

Hình ảnh
  How to fix in Kubernetes – Deleting a PVC stuck in status “Terminating” The Issue Whilst working on a Kubernetes demo for a customer, I was cleaning up my environment and deleting persistent volume claims (PVC) that were no longer need. I noticed that one PVC was stuck in “terminating” status for quite a while. Note: I am using the OC commands in place of kubectl due to this being a Openshift environment The Cause I had a quick google and found I needed to verify if the PVC is still attached to a node in the cluster. kubectl get volumeattachment I could see it was, and the reason behind this was the configuration for the PVC was not fully updated during the delete process. The Fix I found the fix on this  github issue log  . You need to patch the PVC to set the “finalizers” setting to null, this allows the final unmount from the node, and the PVC can be deleted. kubectl patch pvc {PVC_NAME} -p '{"metadata":{"finalizers":null}}' Regards How to fix in Kuber...

Các cách đóng gói images để optimize

  Cách 1: Cài đặt đầy đủ phần mềm, kể cả các trình biên dịch và thư viện để compile source. Ưu điểm: - Cài đặt đơn giản - Build image nhanh vì sử dụng cơ chế cache layers. Nhược điểm: - Kích thước image lớn. VD: FROM ubuntu:16.04 #Install Nginx RUN apt-get update \     && apt-get install -y software-properties-common \     && apt-add-repository -y ppa:nginx/stable \     && apt-get update \     && apt-get install -y nginx \     && rm -rf /var/lib/apt/lists/* ADD nginx/nginx.conf /etc/nginx/nginx.conf ADD nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf ADD data/www /data/www RUN rm /etc/nginx/sites-enabled/default RUN ln -sf /dev/stdout /var/log/nginx/access.log \     && ln -sf /dev/stderr /var/log/nginx/error.log Cách 2: Thực hiện cài đặt trình biên dịch và thư viện để compile mã nguồn. Sau đó remove trình ...

SYSTEM DESIGN CƠ BẢN – PHẦN 20: CAPACITY PLANNING – DỰ TOÁN CÔNG SUẤT CHO ỨNG DỤNG (TẬP 2)

Hình ảnh
  SYSTEM DESIGN CƠ BẢN – PHẦN 20: CAPACITY PLANNING – DỰ TOÁN CÔNG SUẤT CHO ỨNG DỤNG (TẬP 2) 4. THIẾT KẾ VÀ TỐI ƯU HÓA ỨNG DỤNG Thiết kế của ứng dụng hoặc phần mềm đóng một vai trò lớn trong việc lập dự toán công suất. Nếu một session được tạo cho mỗi người dùng đồng thời, điều này có nghĩa là mức tiêu thụ bộ nhớ cho mỗi session. Đối với mỗi hoạt động, các yếu tố như kết nối cơ sở dữ liệu, số lượng object được lưu trữ trong bộ nhớ và lượng xử lý diễn ra sẽ xác định dung lượng bộ nhớ và dung lượng xử lý cần thiết. Các ứng dụng được thiết kế tốt sẽ cố gắng giữ cho những con số này ở mức thấp hoặc sẽ chia sẻ tài nguyên của hiệu quả. Số lượng tài nguyên được tạo ra cho một ứng dụng cũng đóng một vai trò. Ví dụ, đối với các hoạt động chuyên sâu của cơ sở dữ liệu, kích thước nhóm kết nối cơ sở dữ liệu sẽ là một yếu tố hạn chế. Tương tự, thread pool, thời gian thu gom rác, v.v. cũng xác định hiệu năng của hệ thống. Việc thử và thử nghiệm chịu tải ứng dụng bằng các công cụ (ví dụ: đối...

SYSTEM DESIGN CƠ BẢN – PHẦN 19: CAPACITY PLANNING – DỰ TOÁN CÔNG SUẤT CHO ỨNG DỤNG (TẬP 1)

Hình ảnh
  SYSTEM DESIGN CƠ BẢN – PHẦN 19: CAPACITY PLANNING – DỰ TOÁN CÔNG SUẤT CHO ỨNG DỤNG (TẬP 1) by   hoangedward Một trong những công việc cuối cùng trong khâu thiết kế hệ thống sau khi đã hoàn thành khâu logical design là dự toán công suất vật lý của hệ thống để xem cần bao nhiêu máy chủ, (v)CPU, RAM, Disk, network bandwidth là bao nhiêu để hệ thống có thể hoạt động đủ mượt nhưng không quá nhàn rỗi dẫn đến lãng phí tài nguyên. Hiện nay với xu hướng người người, nhà nhà đi lên Cloud để tận dụng khả năng elastic, auto-scaling thì có vẻ là công việc này sẽ nhẹ nhàng hơn, nhưng lại có những challenge khác liên quan đến việc thiết kế ứng dụng để làm sao scale được. Trong phạm vi bài viết này, hãy cùng xem xét về góc cạnh dự toán công suất cho ứng dụng. 1. GIỚI THIỆU Khả năng xác định hoặc dự báo khả năng của một hệ thống hoặc tập hợp các thành phần, thường được gọi là ‘sizing’ của một hệ thống, là một hoạt động quan trọng trong thiết kế hệ thống. Một hệ thống với công suất quá k...

SYSTEM DESIGN CƠ BẢN – PHẦN 18: REST, GRAPHQL, WEBHOOKS, & GRPC

Hình ảnh
  SYSTEM DESIGN CƠ BẢN – PHẦN 18: REST, GRAPHQL, WEBHOOKS, & GRPC by   hoangedward Để giúp các API developer hiểu được nên sử dụng phong cách thiết kế API nào, trong ngữ cảnh nào. Hãy cùng xem xét REST, GraphQL, gRPC và Webhooks, phân tích điểm mạnh và điểm yếu của chúng để ap dụng cho đúng vào từng trường hợp. REST Có thể nói nguyên lí REST và cấu trúc dữ liệu RESTful được biết đến rộng rãi trong giới lập trình web nói chung và lập trình ứng dụng nói riêng. Bản thân REST không phải là một loại công nghệ. Nó là phương thức tạo API với nguyên lý tổ chức nhất định. Những nguyên lý này nhằm hướng dẫn lập trình viên tạo môi trường xử lý API request được toàn diện. REST (REpresentational State Transfer) là một dạng chuyển đổi cấu trúc dữ liệu, một kiểu kiến trúc để viết API. Nó sử dụng phương thức HTTP đơn giản để tạo cho giao tiếp giữa các máy. Vì vậy, thay vì sử dụng một URL cho việc xử lý một số thông tin người dùng, REST gửi một yêu cầu HTTP như GET, POST, DELETE, vv đ...