לדלג לתוכן

מה זה htop ולמה הוא טוב יותר מ-top

יש רגע שכל מי שעבד עם שרת לינוקס מכיר - המערכת פתאום איטית, אתם לא יודעים למה, ואתם צריכים לגלות מהר מי אשם. בשביל הרגע הזה בדיוק קיימת הפקודה top, ובשביל אותו רגע קיים גם htop, שהוא בעצם הגרסה הרבה יותר נעימה שלה. אם עדיין לא הכרתם, זה כלי שאתם תרצו שיהיה מותקן על כל שרת שאתם נוגעים בו.

מה זה top ולמה בכלל צריך את זה

top היא פקודה שמגיעה מובנית כמעט בכל מערכת לינוקס. היא מציגה בזמן אמת רשימה של כל התהליכים שרצים על המחשב, כמה CPU כל תהליך צורך, כמה זיכרון, ומי המשתמש שהריץ אותו. זה הכלי הבסיסי ביותר לשאלה "מה בעצם קורה על המחשב הזה עכשיו". כשמערכת מרגישה איטית, זו הפקודה הראשונה שרצים אליה.

הבעיה היא ש-top נבנתה בשנות התשעים ונראית ככה. הממשק מוגבל, קשה לקרוא אותו, אין צבע שמסביר מה חשוב, ואי אפשר להזיז את התצוגה או ללחוץ עם עכבר. זה עובד, אבל זה לא נעים.

הכלי - htop

htop הוא בעצם top עם כל מה שהיה חסר. זה כלי חיצוני (לא תמיד מותקן כברירת מחדל, אבל קל מאוד להתקין עם מנהל החבילות של המערכת) שנותן לכם בדיוק את אותו מידע, רק בצורה שאפשר באמת לעבוד איתה:

  • צבעים שמספרים סיפור. בדיקה מהירה של הצבע בשורת ה-CPU כבר מראה לכם אם המעבד עמוס.
  • רשימה שאפשר למיין. רוצים לראות מי אוכל הכי הרבה זיכרון? לוחצים על העמודה הרלוונטית וזהו, הרשימה ממוינת.
  • גלילה חופשית. יש מאות תהליכים? אין בעיה לגלול ולראות את כולם, לא רק את מי שנכנס למסך.
  • תמיכה בעכבר. אפשר ללחוץ ישירות על תהליך כדי לבחור בו, בלי לזכור מספרי PID בעל פה.
  • תצוגת עץ - tree view. אפשר לראות איזה תהליך יצר איזה תהליך, מה שהופך אבחון של תהליכים "תקועים" להרבה יותר פשוט.
  • הריגת תהליכים בקלות. בוחרים תהליך, לוחצים F9, ובוחרים איזה סיגנל לשלוח לו - הכל מתוך הממשק, בלי לצאת ולהריץ kill בנפרד.

מתי באמת תשלפו את זה

התיאוריה נחמדה, אבל הערך האמיתי של htop מורגש ברגעים מאוד ספציפיים:

  • השרת מרגיש איטי בלי סיבה ברורה. פותחים htop, מסתכלים על שורת ה-CPU והזיכרון בראש המסך, ותוך שניות רואים אם יש תהליך אחד שמשתולל.
  • תהליך אוכל יותר ויותר זיכרון עם הזמן. זה סימן קלאסי ל-memory leak. עם htop אפשר לעקוב בזמן אמת ולראות את המספר עולה, ולזהות בדיוק איזה תהליך זה.
  • אחרי דיפלוי. פרסתם גרסה חדשה ורוצים לוודא שהכל יציב? הרצה מהירה של htop מראה לכם אם השרת נרגע לרמות שימוש נורמליות או שמשהו משתגע ברקע.
  • ריבוי תהליכים של אותה אפליקציה. בתצוגת העץ אפשר לראות בבירור אם התהליך הראשי שלכם יצר עשרות תהליכי-בת שלא היו אמורים להיות שם.

חשוב להבין - htop לא מחליף כלי ניטור אמיתיים לשרתי פרודקשן, כמו Grafana או Datadog, שנותנים היסטוריה וגרפים לאורך זמן. htop הוא כלי לרגע הזה, ל"עכשיו אני מחובר ל-SSH וצריך לדעת מה קורה". וזה בדיוק מה שהופך אותו לכלי שכל מפתח, לא רק אדמין מערכות, נהנה ממנו.

איך מתחילים

ההתקנה כמעט תמיד פשוטה - sudo apt install htop באובונטו ודביאן, או brew install htop על מק. מריצים htop בטרמינל, וזהו, אתם רואים את המערכת שלכם חיה מולכם. הקלישים החשובים לזכור הם F6 למיון לפי עמודה, F9 להריגת תהליך, ו-q ליציאה.

אם אתם רק מתחילים את המסע עם טרמינל ולינוקס, שווה להכיר את הכלים הבסיסיים האלה כמה שיותר מוקדם - זה בדיוק סוג הידע שהופך אתכם ממי שמפחד מהטרמינל למי שמרגיש בבית בתוכו. בקורס תכנות בסיסי אנחנו בונים את היסודות האלה שלב אחר שלב, כדי שכלים כמו htop יהיו לכם טבעיים ולא מפחידים.

htop הוא אחד מהכלים הקטנים האלה שברגע שהתרגלתם אליהם, אתם לא חוזרים אחורה. תתקינו אותו על השרת הבא שאתם נוגעים בו, ותראו כמה יותר קל להבין מה קורה שם.

הצטרפו לקהילה בדיסקורד