Di động:

Khắc phục khi Server (centos) bị treo Không rõ

28/08/2017 20:54 | lpag | Kinh nghiệm | Nhận xét(0) | Đọc(248)
   Nguồn: http://nguyenduccuong.com | Lớn | Vừa | Nhỏ

Nếu bạn là một người quản trị server riêng chắc hẳn câu hỏi “làm gì khi webserver bị treo?” luôn luôn là một câu hỏi thường ngày mà bạn gặp phải. Bài viết này tôi khái quát kinh nghiệm quản lý server của tôi hi vọng sẽ giúp được một ai đó khi mắc phải sự cố tương tự.

Nếu bạn là một người quản trị server riêng chắc hẳn câu hỏi “làm gì khi webserver bị treo?” luôn luôn là một câu hỏi thường ngày mà bạn gặp phải. Bài viết này tôi khái quát kinh nghiệm quản lý server của tôi hi vọng sẽ giúp được một ai đó khi mắc phải sự cố tương tự.

Khi một webserver bị treo điều đầu tiên bạn cần phải làm là login ngay vào control panel và SSH. Vấn đề cấp thiết nhất là vào được của sổ SSH, trong trường hợp vào control panel không được và cả ssh cũng không được thì chỉ có cách khởi động lại server và chconfig httpd off cho dịch vụ web không tự động run khi power on.

1.Bước 1

Sau khi vào được của sổ SSH điều đầu tiên là kiểm tra xem tiến trình gì đang chiếm tài nguyên hệ thống một cách đột biến, ta dùng lệnh:

# top

Nếu một lệnh nào đó đang chiếm giữ tài nguyên cao thì lập tức kill lệnh đó ngày bằng lệnh:
# kill 1234

trong đó 1234 là ID của process mà ta muốn kill.

2.Bước 2

Nếu không có tiến trình nào đang chiếm giữ tài nguyên đột biến có nghĩa là việc kill một process nào đó trở lên không ăn thua thì ta restart lại 2 dịch vụ web và mysql

#service httpd stop
#service mysqld restart
#service httpd start

Nhớ là đánh lệnh đúng theo trình tự và phải stop httpd trước sau đó restart mysql server sau đó start lại httpd server, việc làm này hết sức cần thiết khi server bạn đang bị treo tức là Mysql server đang làm việc hết công suất nếu bạn chưa stop httpd để ngắt các kết nối CSDL thì việc restart Mysql sẽ làm crash dữ liệu việc ngày rất là nguy hiểm.

Sau khi restart 2 dịch vụ httpd và mysqld xong ta ngồi chờ xem tình hình có khả thi hay không. Nếu không mấy khả thi thì ta tiến hành qua bước tiếp theo.

3. Bước 3

Bước tiếp theo ta kiểm tra xem có IP nào đó đang cố gắng tạo nhiều kết nối để làm chậm server mình hay không bằng lệnh:

#netstat -anp | grep ‘tcp \|udp’ | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n

Xem IP nào đang kết nối nhiều nhất, thông thường với hệ thống nhỏ thì 100 kết nối được xem là đột biết còn với server lớn thì khoảng 300 kết nối. Nếu server của bạn là VPS thì khoảng gần 100 kết nối là được xem là nhiều. Giả sử tôi thấy được IP 74.125.128.94 đang chiếm giữ nhiều kết nối thì nhiệm vụ trước mắt là chặn IP này lại bằng lệnh:

#iptables -I INPUT -s 74.125.128.94 -j DROP
#service iptables save

4. Bước 4

Sau đó vào lại web xem có tiến triển gì không, thông thường thì 60% sự cố tôi làm đến đây là xem như là giải quyết được trước mắt. Nếu không có khả thi gì thì tiếp tục chuyển sang giai đoạn kết tiếp.

Bước tiếp theo nếu việc kiểm tra các kết nốin httpd thấy bình thường mà server của bạn vẫn còn tình trạng ì ạch thì việc kết tiếp là kiểm tra Mysql server.

Đầu tiên đăng nhập vào command của Mysql với tài khoản root:

#mysql -uroot -p

Sau khi đăng nhập vào của sổ mysql command, như theo thường lệ kiểm tra các query đang chạy bằng lệnh

#show full processlist;

nhớ là có dấu “;” phía sau nhé. Thông thường thì kết quả trả về có dạng như sau:
ID Username Client host Database Mode Connected Running query

ta quan tâm đến các cột Username, Mod, và Connected:

Nếu kết quả trả về có quá nhiều run query mà đại đa số là các query đang ở trạng thái ”Sleep” việc này có nghĩa là Mysql đang quá tải và việc quá tải này là do hiện tượng thắt cổ chai gây nên.Có nghĩa là ổ cứng của bạn đang phải làm việc đến mức tối đa để đáp ứng cho các sử lý Mysql Server.

Nếu kết quả trả về đại đa số các query mà có cột Connected tức là thời gian kết nối tương đối lâu thông thường là vài giây trở lên, thì lý do gây ra tắc nghẽn server chính là các query đó gây lên. Lúc này bạn có 2 việc phải làm là tối ưu lại các query đó và kill các query bằng lệnh:

# kill 1234

trong đó 1234 chính là ID của query bạn muốn kill.

Lưu ý: là việc phải kill một số query đang bị treo là việc hết sức hạn chế vì nó sẽ gây ra việc crash database đặc biệc là các query update, insert, delete, order với dữ liệu lớn.

Trong trước hợp các query đang làm việc hết sức bình thường có nghĩa là chỉ có 2-3 dòng trả về và đang ở trang thái “Query” thì bạn cứ yên tâm là Mysql server của bạn đang hoạt đồng bình thường và điều bạn cần phải làm là đánh lệnh #exit; để thoát ra.

(Sưu tầm)
Nguồn: nguyenduccuong.com

  Đánh giá nội dung
Vui lòng đánh giá nội dung này nếu bạn thấy hay. Cám ơn bạn!

Bài viết số 2443 đã được: 0.0/10 (0 Đánh giá)

Bài viết liên quan Bài viết ngẫu nhiên
Làm sao để loại bỏ virus trên điện thoại Android...
Để tắt triệt để Bluetooth và Wi-fi trong iOS 11...
Điều khiển các thiết bị smarthome bằng tin nhắn trên...
Cách khai thác ứng dụng Notes trên iOS 11
Làm sao biết ứng dụng nào đang sử dụng Webcam...
Danh sách DNS tốt, nhanh nhất của Google, VNPT, FPT,...
3 bước cần thực hiện khi vô hiệu hoá iMessage...
​Cách dùng "phím bí mật" Start của Windows 10
Mẹo tìm nhanh một ứng dụng đã cài đặt trên...
Video thú vị về hiệu ứng...
Quản lý cuộc gọi theo thời...
Gerz Clock 2.4
Cách vào BIOS và Menu Boot...
Có thể tìm ra lý do...
Hiren's BootCD 10.2 tích hợp vào...
Những hình ảnh người ngoài hành...
Nghệ thuật biểu diễn - sự...
GIÁM SÁT MÁY LINUX/UNIX SỬ DỤNG...
10 “chiêu” trong các phim võ...
Nếu bạn thấy bài viết hay vui lòng Bookmark bài viết. Cám ơn bạn!

Bookmark and Share
Edit & develop by LPAg v1.0.3.1376006758 [+] Từ khóa: LPAg, Computer, Mobile, Software, Hardware