| |
| |
Preface | |
| |
| |
Acknowledgments | |
| |
| |
About the Author | |
| |
| |
| |
Troubleshooting Best Practices | |
| |
| |
Divide the Problem Space | |
| |
| |
Practice Good Communication When Collaborating | |
| |
| |
Conference Calls | |
| |
| |
Direct Conversation | |
| |
| |
Email | |
| |
| |
Real-Time Chat Rooms | |
| |
| |
Have a Backup Communication Method | |
| |
| |
Favor Quick, Simple Tests over Slow, Complex Tests | |
| |
| |
Favor Past Solutions | |
| |
| |
Document Your Problems and Solutions | |
| |
| |
Know What Changed | |
| |
| |
Understand How Systems Work | |
| |
| |
Use the Internet, but Carefully | |
| |
| |
Resist Rebooting | |
| |
| |
| |
Why Is the Server So Slow? Running Out of CPU, RAM, and Disk I/O | |
| |
| |
System Load | |
| |
| |
What Is a High Load Average? | |
| |
| |
Diagnose Load Problems with top | |
| |
| |
Make Sense of top Output | |
| |
| |
Diagnose High User Time | |
| |
| |
Diagnose Out-of-Memory Issues | |
| |
| |
Diagnose High I/O Wait | |
| |
| |
Troubleshoot High Load after the Fact | |
| |
| |
Configure sysstat | |
| |
| |
View CPU Statistics | |
| |
| |
View RAM Statistics | |
| |
| |
View Disk Statistics | |
| |
| |
View Statistics from Previous Days | |
| |
| |
| |
Why Won't the System Boot? Solving Boot Problems | |
| |
| |
The Linux Boot Process | |
| |
| |
The BIOS | |
| |
| |
GRUB and Linux Boot Loaders | |
| |
| |
The Kernel and Initrd | |
| |
| |
/sbin/init | |
| |
| |
BIOS Boot Order | |
| |
| |
Fix GRUB | |
| |
| |
No GRUB Prompt | |
| |
| |
Stage 1.5 GRUB Prompt | |
| |
| |
Misconfigured GRUB Prompt | |
| |
| |
Repair GRUB from the Live System | |
| |
| |
Repair GRUB with a Rescue Disk | |
| |
| |
Disable Splash Screens | |
| |
| |
Can't Mount the Root File System | |
| |
| |
The Root Kernel Argument | |
| |
| |
The Root Device Changed | |
| |
| |
The Root Partition Is Corrupt or Failed | |
| |
| |
Can't Mount Secondary File Systems | |
| |
| |
| |
Why Can't I Write to the Disk? Solving Full or Corrupt Disk Issues | |
| |
| |
When the Disk Is Full | |
| |
| |
Reserved Blocks | |
| |
| |
Track Down the Largest Directories | |
| |
| |
Out of Inodes | |
| |
| |
The File System Is Read-Only | |
| |
| |
Repair Corrupted File Systems | |
| |
| |
Repair Software RAID | |
| |
| |
| |
Is the Server Down? Tracking Down the Source of Network Problems | |
| |
| |
Server A Can't Talk to Server B | |
| |
| |
Client or Server Problem | |
| |
| |
Is It Plugged In? | |
| |
| |
Is the Interface Up? | |
| |
| |
Is It on the Local Network? | |
| |
| |
Is DNS Working? | |
| |
| |
Can I Route to the Remote Host? | |
| |
| |
Is the Remote Port Open? | |
| |
| |
Test the Remote Host Locally | |
| |
| |
Troubleshoot Slow Networks | |
| |
| |
DNS Issues | |
| |
| |
Find the Network Slowdown with traceroute | |
| |
| |
Find What Is Using Your Bandwidth with iftop | |
| |
| |
Packet Captures | |
| |
| |
Use the tcpdump Tool | |
| |
| |
Use Wireshark | |
| |
| |
| |
Why Won't the Hostnames Resolve? Solving DNS Server Issues | |
| |
| |
DNS Client Troubleshooting | |
| |
| |
No Name Server Configured or Inaccessible Name Server | |
| |
| |
Missing Search Path or Name Server Problem | |
| |
| |
DNS Server Troubleshooting | |
| |
| |
Understanding dig Output | |
| |
| |
Trace a DNS Query | |
| |
| |
Recursive Name Server Problems | |
| |
| |
When Updates Don't Take | |
| |
| |
| |
Why Didn't My Email Go Through? Tracing Email Problems | |
| |
| |
Trace an Email Request | |
| |
| |
Understand Email Headers | |
| |
| |
Problems Sending Email | |
| |
| |
Client Can't Communicate with the Outbound Mail Server | |
| |
| |
Outbound Mail Server Won't Allow Relay | |
| |
| |
Outbound Mail Server Can't Communicate, with the Destination | |
| |
| |
Problems Receiving Email | |
| |
| |
Telnet Test Can't Connect | |
| |
| |
Telnet Can Connect, but the Message Is Rejected | |
| |
| |
Pore Through the Mail Logs | |
| |
| |
| |
Is the Website Down? Tracking Down Web Server Problems | |
| |
| |
Is the Server Running? | |
| |
| |
Is the Remote Port Open? | |
| |
| |
Test the Remote Host Locally | |
| |
| |
Test a Web Server from the Command Line | |
| |
| |
Test Web Servers with Curl | |
| |
| |
Test Web Servers with Telnet | |
| |
| |
HTTP Status Codes | |
| |
| |
1xx Informational Codes | |
| |
| |
2xx Successful Codes | |
| |
| |
3xx Redirection Codes | |
| |
| |
4xx Client Error Codes | |
| |
| |
5xx Server Error Codes | |
| |
| |
Parse Web Server Logs | |
| |
| |
Get Web Server Statistics | |
| |
| |
Solve Common Web Server Problems | |
| |
| |
Configuration Problems | |
| |
| |
Permissions Problems | |
| |
| |
Sluggish or Unavailable Web Server | |
| |
| |
| |
Why Is the Database Slow? Tracking Down Database Problems | |
| |
| |
Search Database Logs | |
| |
| |
MySQL | |
| |
| |
PostgresSQL | |
| |
| |
Is me Database Running? | |
| |
| |
MySQL | |
| |
| |
PostgresSQL | |
| |
| |
Get Database Metrics | |
| |
| |
MySQL | |
| |
| |
PostgresSQL | |
| |
| |
Identify Slow Queries | |
| |
| |
MySQL | |
| |
| |
PostgresSQL | |
| |
| |
| |
It's the Hardware's Fault! Diagnosing Common Hardware Problems | |
| |
| |
The Hard Drive Is Dying | |
| |
| |
Test RAM for Errors | |
| |
| |
Network Card Failures | |
| |
| |
The Server Is Too Hot | |
| |
| |
Power Supply Failures | |
| |
| |
Index | |