IT Support & Help Desk Fundamentals Module 6 – macOS and Linux client administration
macOS troubleshooting: Activity Monitor to logs
Find the process behind a slow Mac, read memory pressure, search the unified log by time, rule out the disk and hardware, and send only the report needed.
What you will learn
- Find runaway processes and memory pressure with Activity Monitor and Terminal
- Search the unified log with Console and log show, by time first and then by process
- Repair disks with Disk Utility First Aid and test hardware with Apple Diagnostics
- Choose the report an escalation needs, from a process sample to a sysdiagnose archive
Before you start
What you’ll learn · Before you start
What you will learn
- Find runaway processes and memory pressure with Activity Monitor and Terminal
- Search the unified log with Console and log show, by time first and then by process
- Repair disks with Disk Utility First Aid and test hardware with Apple Diagnostics
- Choose the report an escalation needs, from a process sample to a sysdiagnose archive
Before you start
On this page
“My Mac is slow every afternoon” is the call a Mac desk takes most, and it hides four different causes: one app using a whole processor core, memory that has run out, a disk with errors, or a fault in the hardware. Each leaves its own trace, in Activity Monitor, in the memory readings, in the unified log or in a disk check, and the order in which you read them decides whether the ticket takes ten minutes or a week.
You will find the busy process and quit it safely, read memory pressure the way Apple means it, turn a user’s “around
two o’clock” into a log show command, run First Aid in the right order, and pick the report an escalation needs
without sending a whole Mac’s worth of personal data to someone who asked for one line.
Activity Monitor names the process behind a busy Mac
Most of the time a Mac’s processor does little, and a slow Mac usually has one process doing too much. Activity Monitor’s CPU tab lists every process with its % CPU; sorting that column puts the culprit at the top. The figures under the list split the load three ways, in Apple’s words: User, used by apps the person opened and the processes they start; System, used by macOS itself; and Idle, what is left.
The other tabs answer the next questions. Energy shows each app’s Energy Impact, lower being better, and whether it is preventing sleep, which explains a laptop that drains overnight. Disk and Network show what reads, writes, sends and receives. Step through the order this lesson works a slow-Mac ticket:
The drawing shows the whole scene; its 6 steps are listed below.
Every step as text
- Find the busy process. Open Activity Monitor and sort the CPU tab by % CPU. User is the share used by apps the person opened, System the share used by macOS itself, Idle what is left. One app at the top of a long list is the usual answer.
- Quit before Force Quit. Quit asks the app to close when it is safe to; Force Quit stops it at once and can lose open files. Try Quit first, and save the user's work if the app still responds.
- Read the pressure graph. In the Memory tab, Apple's graph says it plainly: green means the RAM is used efficiently, yellow that the Mac might need more RAM later, red that it needs more RAM now.
- What keeps it busy. The Energy tab shows each app's Energy Impact and whether it is preventing sleep; the Disk tab shows what is reading and writing. A backup or an index running in the background shows up here.
- Read the log for that moment. When the slowness came and went, the log of those minutes says more than the Mac does now. Console shows errors with a yellow dot and faults with a red one; log show reads the same messages by time.
- Rule out the disk and hardware. When the log points at the disk, run First Aid on each volume, then the container, then the device. When it points at hardware, Apple Diagnostics tests the Mac itself.
Stopping a process has two strengths. Quit asks it to close when that is safe, the same as File, Quit in the app, and it does not quit when closing could lose data. Force Quit: Stopping an app or process at once, from Activity Monitor or with Option-Command-Esc, instead of asking it to quit. It can lose the files the app has open, so Quit is tried first. stops it at once and can lose the files it has open; Option-Command-Esc opens the Force Quit window for apps. A process marked Not Responding, in red, is the case for Force Quit, after the user’s unsaved work has been dealt with. Quitting a process that belongs to another user may ask for an administrator.
In Terminal, top -o cpu shows the same list busiest first (by default top sorts by process ID), and ps takes a
snapshot of processes; both have manual pages on the Mac. They list every user’s processes and the commands that started them, which is why their output belongs on
the technician’s screen, not in a shared ticket.
Memory pressure, not free memory, says whether a Mac needs RAM
A user reads “Memory Used: 47 GB of 48 GB” and asks for an upgrade. Apple’s guide answers that free memory does not by itself improve performance: macOS gets its best performance by using all of its memory. The measure that counts is memory pressure: Activity Monitor's measure of how well a Mac's memory meets its needs, worked out from free memory, swap rate, wired memory and file-cached memory, and shown green, yellow or red., which Apple says is worked out from the free memory, the swap rate, the wired memory and the file-cached memory. Its graph in Activity Monitor’s Memory tab has three colours: green, all RAM used efficiently; yellow, the Mac might eventually need more RAM; red, it needs more RAM.
| Line in the Memory tab | What it counts |
|---|---|
| App Memory | memory apps are using |
| Wired Memory | memory macOS must keep in RAM, unavailable to apps |
| Compressed | memory squeezed to make room for active apps |
| Cached Files | files kept in unused memory to reopen faster |
| Swap Used | space on the startup disk used to swap memory out |
Terminal reads the same counts. The session below took four readings on the lesson’s Mac; they change from second to second, so the page shows one moment:
from session import run
# How much memory this Mac has and how it is being used right now: memory_pressure's total and free share, the swap
# in use, and four of vm_stat's page counts. The readings change from second to second while the Mac works.
run(
"""
memory_pressure -Q
sysctl vm.swapusage
vm_stat | grep -E '^Pages (free|active|wired down|occupied by compressor):'
"""
) Output
$ memory_pressure -Q The system has 51539607552 (3145728 pages with a page size of 16384). System-wide memory free percentage: 42% $ sysctl vm.swapusage vm.swapusage: total = 13312.00M used = 12633.12M free = 678.88M (encrypted) $ vm_stat | grep -E '^Pages (free|active|wired down|occupied by compressor):' Pages free: 34819. Pages active: 647057. Pages wired down: 301297. Pages occupied by compressor: 1455051.
This output changes from run to run: The free share, the swap in use and the page counts change from second to second while the Mac works, so each run prints its own moment.
Recorded with Python 3.14.8 on macOS 26 arm64. To run it yourself: mise exec python@3.14.8 -- python3 memory_session.py
memory_pressure -Q starts with the total: 51,539,607,552 bytes in 3,145,728 pages of 16,384 bytes, exactly 48 GiB.
Its second line is the share of memory the system counts as free, vm.swapusage says how much of the startup disk
holds swapped memory, and vm_stat counts pages: free, active, wired down and those the compressor occupies.
Compressing inactive apps’ memory is how macOS makes room for active ones, Apple says, so a large compressor figure
with little free memory is no fault on its own; only pressure that stays red, with the swap growing, makes the case
for more RAM.
Ordering RAM because free memory is low
Wrong: Activity Monitor shows almost no free memory, so the Mac gets an upgrade request. Right: macOS uses spare RAM for caches and compression on purpose; check the pressure graph over a working day, and ask for RAM only when it stays red while the user works.
Checkpoint
Check: Finding the busy process · Memory pressure
The unified log is read by time first, then by process
macOS writes the messages of the system and of apps into one unified log: The single store of log messages that macOS and its apps write. Console shows it, and log show reads it in Terminal, narrowed by time and by keys such as process or subsystem.. Console shows it: pick the device, click Start, and each message has a type, marked by a dot, yellow for errors and red for faults. Apple notes that a user who is not an administrator must enter an administrator’s name and password to see the messages. Searching works on text, and the search field’s filters can keep one process or leave one out.
The same messages come out in Terminal with log show, and man log on the Mac lists what narrows them. Time comes
first, because a Mac writes thousands of messages a minute:
| Option | What it keeps |
|---|---|
--last 30m |
the last 30 minutes, or --last boot since the last start |
--start and --end |
a window, as "YYYY-MM-DD HH:MM:SS", with an optional UTC offset |
--predicate |
messages matching keys such as process, subsystem or messageType |
--style compact |
one shorter line per message |
A log predicate: A filter for log show or log stream that compares keys of each message, such as process, subsystem or messageType, with values, as in process == "Mail". compares those keys with values, as process == "Mail"; messageType
takes default, info, debug, error or fault. The program below turns three tickets into commands. The predicate goes
inside single quotes so the shell hands it to log in one piece, and names with spaces go inside double quotes:
"""Three tickets turned into log show commands. Each ticket gives the window to read, in the date and time form
man log accepts ("YYYY-MM-DD HH:MM:SS" followed by the UTC offset, such as +05:30), and a process or a subsystem to keep. The predicate is
built from the keys man log documents, and the whole predicate is wrapped in single quotes so the shell passes it to
log in one piece, with names that contain spaces inside double quotes."""
TICKETS = [
("Photo Booth closes when the camera starts", "2026-09-14 14:00:00+05:30", "2026-09-14 14:20:00+05:30",
{"process": "Photo Booth"}),
("Mail stopped fetching after lunch", "2026-09-14 13:30:00+05:30", "2026-09-14 14:00:00+05:30",
{"process": "Mail"}),
("An app's own messages, by subsystem", "2026-09-14 09:00:00+05:30", "2026-09-14 09:15:00+05:30",
{"subsystem": "com.example.notes"}),
]
def predicate(keep):
"""One clause per key, joined with &&, each value in double quotes (a double quote inside is escaped)."""
clauses = []
for key in ("process", "subsystem"):
if key in keep:
value = keep[key].replace("\\", "\\\\").replace('"', '\\"')
clauses.append(f'{key} == "{value}"')
return " && ".join(clauses)
for title, start, end, keep in TICKETS:
print(f"# {title}")
print(f"log show --style compact --start '{start}' --end '{end}' --predicate '{predicate(keep)}'") Output
# Photo Booth closes when the camera starts log show --style compact --start '2026-09-14 14:00:00+05:30' --end '2026-09-14 14:20:00+05:30' --predicate 'process == "Photo Booth"' # Mail stopped fetching after lunch log show --style compact --start '2026-09-14 13:30:00+05:30' --end '2026-09-14 14:00:00+05:30' --predicate 'process == "Mail"' # An app's own messages, by subsystem log show --style compact --start '2026-09-14 09:00:00+05:30' --end '2026-09-14 09:15:00+05:30' --predicate 'subsystem == "com.example.notes"'
Recorded with Python 3.14.8 on macOS 26 arm64. To run it yourself: mise exec python@3.14.8 -- python3 log_command.py
Runs on this device, in your browser. The first run downloads Python (about 13.5 MB), which is kept for the next runs.
Your run, in this browser
Each command reads only the minutes the user described, with the UTC offset the ticket gives, so the window is the
same whatever time zone the Mac is set to. The offset follows the ZZZZZ form of Unicode’s date patterns, such as
+05:30. A user’s “around two” in India becomes --start '2026-09-14 14:00:00+05:30', and the
timezone converter checks the same moment for a user in another city.
Checkpoint
Check: Reading the unified log
First Aid and Apple Diagnostics rule out the disk and the hardware
When the log shows file errors, or apps quit at random, the disk is next. Apple’s Disk Utility guide says First Aid can fix certain problems, such as apps that quit unexpectedly, a corrupted file or a Mac that will not start up, though not all. The order is exact: First Aid: The Disk Utility function on a Mac that checks a volume, a container or a whole storage device for errors and repairs what it can. Apple's order is each volume, then the container, then the device. on each volume of the device in turn, then on each container, then on the storage device itself. The startup disk is checked from macOS Recovery, and the order of those steps is in boot problems and recovery.
Before any of that, read what the drive says about itself:
from session import run
# The internal storage device and the volume the Mac runs from, read without changing anything. SMART Status is the
# drive's own health verdict, which Disk Utility also shows.
run(
"""
diskutil info disk0 | grep -E "Device / Media Name|Protocol|Solid State|SMART Status"
diskutil info / | grep -E "Volume Name|File System Personality|Volume Read-Only"
"""
) Output
$ diskutil info disk0 | grep -E "Device / Media Name|Protocol|Solid State|SMART Status" Device / Media Name: APPLE SSD AP1024Z Protocol: Apple Fabric SMART Status: Verified Solid State: Yes $ diskutil info / | grep -E "Volume Name|File System Personality|Volume Read-Only" Volume Name: Macintosh HD File System Personality: APFS Volume Read-Only: Yes (read-only mount flag set)
Recorded with Python 3.14.8 on macOS 26 arm64. To run it yourself: mise exec python@3.14.8 -- python3 disk_session.py
The internal device is an APPLE SSD AP1024Z over Apple Fabric, solid state, with SMART Status Verified, and the
startup volume is the read-only APFS volume Macintosh HD. When Disk Utility reports instead that a disk is about to
fail, Apple’s advice is short: back up the data and replace the disk, because it cannot be repaired.
When nothing points at the disk but the Mac still misbehaves, Apple Diagnostics: Apple's built-in hardware test for a Mac, started from the startup options with Command-D on Apple silicon or by holding D on an Intel Mac, to find which component may be at fault. helps find which hardware component is at fault. On Apple silicon, hold the power button until the startup options appear, then hold Command-D; on an Intel Mac, hold D as it starts. The preparation and what to do with its results are in hardware faults. Safe mode, which separates a fault in the system from one in what was added to it, is in the boot lesson too.
Checkpoint
Check: First Aid and Apple Diagnostics
An escalation carries the report it needs, and no more
A ticket that goes to the next tier, to Apple or to a vendor needs evidence, and every report trades detail against
personal data. System Information, and system_profiler in Terminal, export a Mac’s hardware and software. Its manual
lists a detail level, mini, described as a report with no personal information. The session shows the difference
without printing anything personal: first the names of the fields the full software report fills in, then the report at
mini:
from session import run
# What a System Information software report would carry. The first line prints only the names of the fields the full
# report fills in; the second prints the report at the detail level system_profiler's manual calls "mini", which it
# describes as a report with no personal information.
run(
"""
system_profiler SPSoftwareDataType | cut -d: -f1 | sed "s/^ *//" | grep -v "^$"
system_profiler -detailLevel mini SPSoftwareDataType | grep -v "Time since boot"
"""
) Output
$ system_profiler SPSoftwareDataType | cut -d: -f1 | sed "s/^ *//" | grep -v "^$"
Software
System Software Overview
System Version
Kernel Version
Boot Volume
Boot Mode
Computer Name
User Name
Secure Virtual Memory
System Integrity Protection
Time since boot
$ system_profiler -detailLevel mini SPSoftwareDataType | grep -v "Time since boot"
Software:
System Software Overview:
System Version: macOS 26.7.1 (25G241)
Kernel Version: Darwin 25.6.0
Recorded with Python 3.14.8 on macOS 26 arm64. To run it yourself: mise exec python@3.14.8 -- python3 report_session.py
The full report has a Computer Name and a User Name among the eleven names it prints; the mini report keeps the macOS
and kernel versions, and the time since the last start, left out here because it changes. The largest report is a sysdiagnose: A macOS tool, run as root, that gathers a large archive of a Mac's state, logs, crash reports and configuration for Apple or a vendor to investigate a problem. archive, which man sysdiagnose
says gathers a great deal of the system’s state: a spindump, several seconds of top, recent system logs, a System
Profiler report, recent crash reports, disk usage and network status. It runs as root and saves the archive in
/var/tmp. Activity Monitor offers a smaller tool, Sample Process, a report on one process over 3 seconds.
Redact before a ticket, not after
Log lines and reports can name files, people, servers and addresses. Read what you attach, cut what the question does not need, and run text through the PII redactor before it goes into a shared ticket.
Two questions about the escalation decide what to send:
Answer the questions above: the table then marks what fits your case and says why the rest does not.
| Report | Answers | Personal data | Size | Send it when |
|---|---|---|---|---|
| Sample of one process Made with: Activity Monitor, Sample Process | Mixed what one process did for 3 seconds | Good one process only | Good one small text report | Mixed the app is slow or stuck right now |
| Software report (mini) Made with: system_profiler -detailLevel mini | Mixed which macOS and kernel the Mac runs | Good no personal information, says the manual | Good a few lines | Good almost every escalation |
| Log excerpt Made with: log show for a time window | Good what happened in the minutes you chose | Mixed messages can name files, people and hosts | Good as small as the window and the filter | Good the problem had a time and a process |
| sysdiagnose archive Made with: sysdiagnose, as root | Good logs, crash reports, processes and more at once | Poor a great deal of the whole Mac's state | Poor a large archive in /var/tmp | Mixed only when Apple or the vendor asks for it |
How the answers decide
- “Who will read what you send?” A colleague on the next support tier: rules out sysdiagnose archive. An archive of the whole Mac's state is more than a colleague needs, and it carries far more personal data than the question does.
- “What do you know about the problem?” An app is slow or stuck right now: adds a caveat to Log excerpt. A sample of the busy process shows what it is doing now; a log excerpt needs the minutes to read.
- “What do you know about the problem?” It happened at a known time: rules out Sample of one process. A 3-second sample of a process says nothing about a moment that has passed; the log of those minutes does.
- “What do you know about the problem?” Nobody can say when or where and “Who will read what you send?” Apple or the app's vendor, who asked for it: adds a caveat to sysdiagnose archive. When nothing narrows the problem and the vendor has asked, the archive is the right tool, sent with the user's consent through the channel the organisation allows.
In short: a colleague gets the mini report and a log excerpt for the minutes that matter; a 3-second sample serves an
app that is stuck now; a sysdiagnose goes only to Apple or a vendor who asked for it, with the user’s consent, through
the channel the organisation allows.
Key idea
Send the smallest report that answers the question asked: a version, a window of the log or one process, and a whole-Mac archive only on request.
Checkpoint
Check: Reports for an escalation
Practise: a log window for any time zone
A user’s “around 14:05” has to become two exact times before log show can use it. Write the function that turns a
reported time and its UTC offset into the --start and --end values, for any number of minutes either side and
across midnight, and that refuses a negative window or a time in the wrong form. The self-check after it covers every
section.
Exercise · Easy · Python
Turn a reported time into a log window
Write log_window(reported, offset, minutes_before=10, minutes_after=5) so that it returns the --start and --end values for log show around the moment a user reported a problem.
reportedis the user's date and time as"YYYY-MM-DD HH:MM", such as"2026-09-14 14:05".offsetis the user's UTC offset as"+HH:MM"or"-HH:MM", such as"+05:30".- Return a tuple of two strings in the form
man loggives,"YYYY-MM-DD HH:MM:SS"followed by the offset as it was given:log_window("2026-09-14 14:05", "+05:30")returns("2026-09-14 13:55:00+05:30", "2026-09-14 14:10:00+05:30"). - A window that crosses midnight moves the date too.
Raise ValueError when either number of minutes is negative, or when reported or offset is not in its form.
Starter code · log_window.py
def log_window(reported, offset, minutes_before=10, minutes_after=5):
"""Return the --start and --end strings for log show around a reported time, such as ("... 13:55:00+05:30", ...)."""
return ("", "") The sample tests · test_log_window.py
from log_window import log_window
def raises_value_error(*args):
try:
log_window(*args)
except ValueError:
return True
return False
def test_the_default_window():
assert log_window("2026-09-14 14:05", "+05:30") == ("2026-09-14 13:55:00+05:30", "2026-09-14 14:10:00+05:30")
def test_a_wider_window():
assert log_window("2026-09-14 14:05", "+05:30", 30, 15) == ("2026-09-14 13:35:00+05:30", "2026-09-14 14:20:00+05:30")
def test_a_negative_offset():
assert log_window("2026-03-02 08:00", "-05:00", 5, 5) == ("2026-03-02 07:55:00-05:00", "2026-03-02 08:05:00-05:00")
def test_crossing_midnight():
assert log_window("2026-09-14 23:58", "+00:00") == ("2026-09-14 23:48:00+00:00", "2026-09-15 00:03:00+00:00")
assert log_window("2026-09-15 00:04", "+00:00") == ("2026-09-14 23:54:00+00:00", "2026-09-15 00:09:00+00:00")
def test_a_zero_window():
assert log_window("2026-09-14 14:05", "+05:30", 0, 0) == ("2026-09-14 14:05:00+05:30", "2026-09-14 14:05:00+05:30")
def test_negative_minutes_are_refused():
assert raises_value_error("2026-09-14 14:05", "+05:30", -1, 5)
assert raises_value_error("2026-09-14 14:05", "+05:30", 5, -1)
def test_bad_forms_are_refused():
assert raises_value_error("14:05 on 14 September", "+05:30")
assert raises_value_error("2026-09-14 14:05", "IST")
assert raises_value_error("2026-09-14 14:05", "+0530") A hint
datetime.strptime(reported, "%Y-%m-%d %H:%M") reads the time, and timedelta(minutes=...) moves it, across midnight too. Check the offset with a pattern such as ^[+-]\d\d:\d\d$ before you use it, then build each string with strftime("%Y-%m-%d %H:%M:%S") followed by the offset.
Results of the sample tests
| Test | Result | Details |
|---|
What your code printed
The sample tests run on this device, in your browser (Pyodide): nothing is sent to mysmartcopilot.com. The first run downloads Python (about 13.5 MB), which is kept for the next runs. A check in your browser is feedback for you, not proof that the code is right for every input.
Practice that adapts to you
Practise this lesson
11 questions about 5 ideas of this lesson. Each answer is explained at once, and what you get right is kept in this browser.
Interview questions
Warm-up (fresher): why does a Mac with almost no unused memory not prove that it needs more RAM?
Because macOS uses spare memory on purpose. Apple’s Activity Monitor guide says unused memory does not by itself make a Mac faster, and that macOS performs best by using and managing all of its memory, for instance by keeping recently used files cached and by compressing memory that inactive apps hold. The measure that matters is memory pressure, which Apple works out from the unused memory, the swap rate, the wired memory and the file cache, and shows as a graph: green when the RAM is used efficiently, yellow when the Mac might eventually need more, red when it needs more RAM. So I would watch the pressure graph while the user does their normal work, check whether swap keeps growing, and only ask for an upgrade when the pressure stays red.
Two harder calls follow: a Mac that is slow every afternoon and fine in the morning, and a vendor who asks for a sysdiagnose from a finance user’s Mac. Note the single reading you would take first on each, then see whether its page opens the same way:
Model answers open with any pass: ₹79 for 1 week ($2.99), one payment that never renews.
-
Fresher to mid
A user says their MacBook is fine every morning and slow every afternoon from about 3 o'clock, with no warning messages. How do you find the cause?
-
Mid to senior
An accounting app's vendor asks for a sysdiagnose from a finance user's Mac to investigate a crash. What do you do before anything is sent?
Flashcards · 6 cards
Recall it, then check
Say the answer to yourself before you look: recalling it is what makes it stick.
-
How do you find the process behind a busy Mac, and how do you stop it?
Sort the CPU tab of Activity Monitor by % CPU. Try Quit before Force Quit, because Force Quit can lose the files the app has open.
-
Does a Mac with almost no unused memory need more RAM?
Not on that alone, because macOS uses spare memory on purpose, for caches and compression. Memory pressure, shown green, yellow or red, says whether it needs more.
-
How do you narrow the unified log to the messages that matter?
By time first, with --start and --end or --last, then by a predicate on the process or subsystem, such as process == "Mail".
-
In what order does First Aid check a Mac's storage, and what happens to a disk said to be failing?
Each volume, then each container, then the device. A disk that Disk Utility says is about to fail is backed up and replaced, and Apple Diagnostics tests the rest of the hardware.
-
How do you start Apple Diagnostics?
From the startup options with Command-D on Apple silicon, or by holding D at start-up on an Intel Mac.
-
Which report goes with the escalation of a Mac problem?
The smallest one that answers the question asked: a version, a window of the log or one process. A sysdiagnose, which gathers much of the Mac's state, goes only to someone who asked for it.
Key takeaways
- Activity Monitor’s CPU tab, sorted by % CPU, names the busy process; Quit comes before Force Quit, because Force Quit can lose open files.
- Memory pressure, green, yellow or red, says whether a Mac needs RAM; low free memory on its own does not.
- The unified log is narrowed by time first, with
--startand--endor--last, then by a predicate on the process or subsystem. - First Aid runs on each volume, then each container, then the device; a disk Disk Utility says is about to fail is backed up and replaced, and Apple Diagnostics tests the rest of the hardware.
- An escalation carries the smallest report that answers its question, and a sysdiagnose, which gathers a great deal of the Mac’s state, goes only to someone who asked for it.
Terms in this lesson
- Apple Diagnostics
- Apple's built-in hardware test for a Mac, started from the startup options with Command-D on Apple silicon or by holding D on an Intel Mac, to find which component may be at fault.
- Force Quit
- Stopping an app or process at once, from Activity Monitor or with Option-Command-Esc, instead of asking it to quit. It can lose the files the app has open, so Quit is tried first.
- log predicate
- A filter for log show or log stream that compares keys of each message, such as process, subsystem or messageType, with values, as in process == "Mail".
- memory pressure
- Activity Monitor's measure of how well a Mac's memory meets its needs, worked out from free memory, swap rate, wired memory and file-cached memory, and shown green, yellow or red.
- sysdiagnose
- A macOS tool, run as root, that gathers a large archive of a Mac's state, logs, crash reports and configuration for Apple or a vendor to investigate a problem.
- unified log
- The single store of log messages that macOS and its apps write. Console shows it, and log show reads it in Terminal, narrowed by time and by keys such as process or subsystem.
References
- View CPU activity in Activity Monitor on Mac (Apple)
- View memory usage in Activity Monitor on Mac (Apple)
- Check if your Mac needs more RAM in Activity Monitor (Apple)
- View energy consumption in Activity Monitor on Mac (Apple)
- Quit an app or process in Activity Monitor on Mac (Apple)
- Run system diagnostics in Activity Monitor on Mac (Apple)
- View log messages in Console on Mac (Apple)
- Find log messages and activities in Console on Mac (Apple)
- Repair a storage device in Disk Utility on Mac (Apple)
- Use Apple Diagnostics to test your Mac (Apple)
- Start up your Mac in safe mode (Apple)
- UTS #35, Unicode Locale Data Markup Language, Part 4: Dates (Unicode Consortium)
Related tools
Report a problem with this lesson
Kept only in this browser. Your Learn progress