» Vị trí : Đang xem tin
Khắc phục khi Server (centos) bị treo - LPAg | Computer | Mobile | Software & Hardware
Chuyên mục: Kinh nghiệm
Khắc phục khi Server (centos) bị treo
Font: Giảm | Mặc định | Tăng | Cập nhật: 28-8-2017 | Đã xem: 243

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

Tags:cenos, server, kinh nghiệm
Kinh nghiệm TIN MỚI NHẤT

​Cách dùng "phím bí mật" Start của Windows 10
(Cập nhật: 26-6-2017 | Đã xem: 392)
TAGS CÙNG CHỦ ĐỀ
2. Để tắt triệt để Bluetooth và Wi-fi trong iOS 11 (Cập nhật: 25-9-2017 | Đã xem: 176)
4. Cách khai thác ứng dụng Notes trên iOS 11 (Cập nhật: 8-9-2017 | Đã xem: 216)
Kinh nghiệm CÁC TIN KHÁC
1. 10 cách để tránh máy tính bị đột nhập (Cập nhật: 15-1-2010 | Đã xem: 4171)
2. Đóng một tài liệu Word 2007 (Cập nhật: 7-10-2010 | Đã xem: 4044)
3. Đổi chữ Start trong nút Start thành chữ khác. (Cập nhật: 27-12-2009 | Đã xem: 5748)
4. Turn off các dịch vụ windows để tăng tốc (Cập nhật: 11-12-2009 | Đã xem: 5108)
5. Mẹo xem ảnh đã ẩn của bạn bè trên Facebook (Cập nhật: 19-7-2015 | Đã xem: 1522)
NGẪU NHIÊN
1. Người vun đắp ước mơ  (Cập nhật: 7-2-2014 | Đã xem: 1)
2. XML Notepad 2007 2.5 (Cập nhật: 9-11-2009 | Đã xem: 2890)
3. Vô hiệu Security Center (Cập nhật: 11-12-2009 | Đã xem: 4367)
5. Vẽ chiếc ly trông như thật (Cập nhật: 30-4-2014 | Đã xem: 1838)
KháchLogin