Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Status
The first post of this thread is a WikiPost and can be edited by anyone with the appropiate permissions. Your edits will be public.

Forti

macrumors regular
Original poster
Nov 14, 2018
174
282
Gdynia, Poland
Please read the update at the end of this post.


Hi,

I have Mac mini m1 256/16 for almost 8 days. After those 8 days I can see 0.9 TB written.

From what I found on the web this ssd should last for ~~150 TBW. After 8 days I have 0.9 TBW :)

I checked on my MacBook Pro 13" from 2018, 256/16 as well. I used both machines for the same task (99% of time it's coding, swift, javascript etc).

Macbook 2018 - 47.5 TBW (after over 2years and 3-4 months)
Mac mini m1 - 0.9 TBW (after 8 days).

On both machines I used the DriveDx tool to check it.

To be honest I'm a bit surprised and scared at the same time. With this I should be near the 150TBW limit in next ~~2 years. Normally I would be like "ee ok, I will just replace it" - but here, with Mac mini I can't :)

Any thoughts on this?


My addition:
Mac Pro Big Sur 10 months - ~ 67TB
MacBook Pro M1 5 months - ~ 51.4TB

Something's not right. But last few days the GB/day seem to have dropped on 11.3b7
-HaraldS


How to install smartmontools
Open Terminal. You may do this by searching for terminal with Spotlight, or by navigating to /Applications/Utilities/ and double clicking the Terminal app.

Download Homebrew. See the instructions at https://brew.sh. You may also enter the following command in Terminal:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)".

Then, run this command:
brew install smartmontools.

You may run the following command after it installs:
smartctl -a disk0.

The appropriate tool for Apple Silicon (M1) is at /opt/homebrew/bin/smartctl, while the Intel analogue will be at /usr/local/bin/smartctl.

If all that is too complicated, you can download and install my simplified version that just displays relevant data from your internal NVMe SSD. It is equivalent to the final pane of smartctl -a disk0.

An installer package is available on GitHub that will install into /usr/local/bin after you supply your admin password. Once installation is complete, you can run the command with:
/usr/local/bin/smartTBW.

See the code.


A list of tweaks/fixes to try to fix excessively high writes on M1
by @TheSynchronizer

These are ordered by most effective in reducing writes, so it's a good order to try them in. For relevant screenshots, go to this thread.
  1. Using a browser with tab discarding - As of Big Sur 11.2.3 this is the most effective step to try to reduce writes. Do note that you're only going to notice improvements if you browse with more than 5 tabs, or if you often close and open new tabs.

    Currently, Safari is unfortunately often a major culprit in writing excessive data to the SSD, especially due to it's excessive website data caching. Safari will often cache any tab you close to 'Safari Web Content (Cached)', which is kept in your memory, and if any other app requires your RAM the cached website data gets written as swap to the SSD. Secondly, Safari has no tab discarding/sleeping features which means that the more tabs you open, the more memory used, which leads to excessive SSD swap writing.

    Solution: Switching to one of the many alternative M1 native browsers available, and installing a tab discarding extension such as Auto Tab Discard. Many viable options exist, but in terms of memory efficiency the best options include Brave, Firefox, and Vivaldi. Alternatively you can also use Chrome, or Microsoft Edge but Edge lacks the cache disabling flags and it requires setting the Edge cache folder to Read Only. All of these browsers support Auto Tab Discard (Firefox has it in it's native extension store), with Brave, and Vivaldi both being Chromium browsers which allows them to access the large Chrome Extension Web Store.

    Once you choose one of these browsers (feel free to try them all), the next step is to download and configure Auto Tab Discard. This extension releases the memory of tabs that do not need to be actively taking it, but your scroll position on the page is preserved so that when you click back on the tab it appears as if nothing happened. Once you've installed ATD to your browser, click on the extension icon and go into options, and here you can configure how you want ATD to behave.

    I recommend discarding inactive tabs after 1 minute, when the number of inactive tabs reaches 2. Set maximum number of tabs to check for discarding per automatic discarding request to 500, and the number of allowed simultaneous discarding jobs to 1000. The rest of the options are up to you.

    The last optimisation step to take is to turn off browser caching.
    For Brave / Vivaldi: open a new tab and type chrome://flags .Once in here, search 'caching' and enable'Turn off caching of streaming media to disk while on battery power' and 'Turn off caching of streaming media to disk', and disable 'Back-forward cache'. Restart the browser and you're done.

    For Firefox: open a new tab and type about:config .Accept the warning message, and search 'cache'. Turn all the browser.cache settings to false by clicking on the 'true' value.

  2. Adjusting pmset settings- pmset on M1 is responsible for how the mac acts during sleep. On the M1 it is very limited compared to Intel macs, and essentially all the options that are available are safe to toggle on and off. If switching from Safari as above is not enough to fix your writes, then this is the next best step to try.

    Open Terminal and type "pmset -g" - this will give you your current pmset settings.

    I've set all of the following options to 0:

    - powernap - SleepServices - womp - networkoversleep - ttyskeepawake - tcpkeepalive

    and have noticed no difference to the function of my M1 mac or any services such as iCloud / Messages syncs etc.

    To set them to 0, simply type "sudo pmset -a powernap 0", then enter your password, and press enter. Replace 'powernap' with each of the other setting names to toggle them all to 0. After you do them all, you can check the settings again using "pmset -g".

    With all of these options set to 0, my mac writes significantly less data during sleep. Note that the only function that is disabled AFAIK is Remote Locking the Mac from Find My when it's sleeping and connected to Wi-Fi, so if you need this function you will be unable to disable some of these. And if you do notice any other functional difference, simply set them back to 1 with "sudo pmset -a powernap 1".

  3. Limit spotlight indexing - Spotlight is a great macOS feature, but chances are you do not need to search for everything that it indexes by default. Spotlight indexing writes to the SSD, so limiting this will reduce writes.

    Go to System Preferences and then to Spotlight. In here, under the 'Search Results' tab look through all the available categories, and untick any categories that you never need to search for. In 'Privacy' you can directly add any folders you never need to search in. Personally, here I've added all the folders in 'Library' (in Finder click 'Go' in the menu bar, hold option and 'Library' will show up) other than Application Support. You can add most of the folders in here to Privacy because they're generally not of interest to searching, and doing so helps limit unnecessary spotlight indexing.

  4. Prevent Time Machine Local Snapshots - Time Machine is a great way to backup your system to an external drive, but local snapshots are likely not useful / unnecessary for most people and just a waste of SSD writes.

    Go to System Preferences and then to Time Machine. Click 'Options' and press the +, and proceed to add Macintosh HD (your whole system drive) to be excluded, then click Save.

    When time comes to make a backup, simply go back into these Options and remove 'Macintosh HD' from the exclusion list to proceed with backing up as normal!

  5. Limit unneeded startup apps / Intel apps - Rosetta 2 is an amazing technological accomplishment allowing the M1 chip to run x86 software, however running apps through Rosetta 2 is known to take a more memory than M1 native options.

    To check which apps are started up with your Mac, go to System Preferences then search Login Items - this shows which apps launch when you boot your Mac. Remove any apps from this list that you do not need / do not use.

    To check how many Intel apps you're running, go to Activity Monitor -> CPU, and click the 'Architecture' tab which sorts the app by Intel apps first. Consider finding M1 Native versions of any Intel apps, or closing them when you don't need to use them.

    Conclusion:

    With all of these steps to try, it's very likely you can reduce your excessive writes to levels that are healthy for the lifetime of the Mac.

    To check how healthy your writes are, go to Activity Monitor, then to Disk, and note down the number of 'Data Written'. Next, go to Terminal and type 'uptime', and note down the result. Days are '24 hours'. Take into account that Data Written will count external disk writes, so if you've written to an external drive since booting this value will be innacurate.

    Simply divide the number of GB written by the amount of hours your mac has been 'uptime' since last boot. If you're getting under 5GB written per hour, you will have no issues with your SSD during the lifetime of your M1 mac (e.g. if you're writing 5GB / hour, that accounts to 14 yearsminimum of SSD life on a 256GB SSD).

    Hope this helps anyone who is experiencing high writes on M1!
I am additionally suggesting an update to 11.3. I have just recently updated to 11.3, currently have 65 Tabs open, and my Swap Used is at 0 for the first time since purchasing this machine. --- leons


Edit: 23/05/2021
The person who first reported the M1 SSD issues says it's been fixed in 11.4. Says it could have been a kernel bug.

Edit: 2/06/2021
We were confirmed it was indeed a XNU/kernel bug. Update to 11.4 to fix the issue.
 
Last edited:

theSeb

macrumors 604
Aug 10, 2010
7,466
1,893
none
0.9 TBW after 8 days seems crazy. The first question to ask here does DriveDx support M1 Macs properly. We have already seen some other "hardware sensor reading" apps show incorrect information on M1 Macs.
 
  • Like
Reactions: compwiz1202

gank41

macrumors 601
Mar 25, 2008
4,350
5,021
I’m also curious about this for my M1 MBP. I’m assuming that if we had AppleCare Plus, add in the 90(?) days included, they’d replace a “faulty” unit, right? I had my 2015 MBPr replaced in the last two weeks of my AppleCare Plus coverage in 2018 because of the battery swelling issue, and not even 2 years later that battery’s swelling up again. Apple’s learned a lot since then. I’d assume they’d have thought about needing to replace storage, regardless of how it’s implemented. I mean, there’s gotta be a contingency for EVERY M1 unit sold potentially in this situation, right? ?
 

Forti

macrumors regular
Original poster
Nov 14, 2018
174
282
Gdynia, Poland
According to what I found apple is probably using the TLC NAND from Western Digital, which should have 150TBW for each 250gb ssd (512ssd = 300TBW) but once again - no one knows it.

To be honest I'm expecting one of three different solutions:
- one of the future macOS update will fix it
- like someone told before - it can be just a "sensor bug"
- in next 1-2 year we are gonna see ssd repair program
 

theSeb

macrumors 604
Aug 10, 2010
7,466
1,893
none
Can you share your entire table from smartctl -a ? (the one with the attributes)
 

Forti

macrumors regular
Original poster
Nov 14, 2018
174
282
Gdynia, Poland
sure! here you go:

Code:
smartctl 7.2 2020-12-30 r5155 [Darwin 20.3.0 x86_64] (sf-7.2-1)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Number:                       APPLE SSD AP0256Q
Serial Number:                      0ba0122b8188c833
Firmware Version:                   1161.80.
PCI Vendor/Subsystem ID:            0x106b
IEEE OUI Identifier:                0x000000
Controller ID:                      0
NVMe Version:                       <1.2
Number of Namespaces:               3
Local Time is:                      Tue Feb 16 15:34:36 2021 CET
Firmware Updates (0x02):            1 Slot
Optional Admin Commands (0x0004):   Frmw_DL
Optional NVM Commands (0x0004):     DS_Mngmt
Maximum Data Transfer Size:         256 Pages

Supported Power States
St Op     Max   Active     Idle   RL RT WL WT  Ent_Lat  Ex_Lat
0 +     0.00W       -        -    0  0  0  0        0       0

=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

SMART/Health Information (NVMe Log 0x02)
Critical Warning:                   0x00
Temperature:                        29 Celsius
Available Spare:                    100%
Available Spare Threshold:          99%
Percentage Used:                    0%
Data Units Read:                    2,736,283 [1.40 TB]
Data Units Written:                 2,016,737 [1.03 TB]
Host Read Commands:                 41,881,217
Host Write Commands:                20,448,904
Controller Busy Time:               0
Power Cycles:                       68
Power On Hours:                     22
Unsafe Shutdowns:                   7
Media and Data Integrity Errors:    0
Error Information Log Entries:      0

Read 1 entries from Error Information Log failed: GetLogPage failed: system=0x38, sub=0x0, code=745
 

gank41

macrumors 601
Mar 25, 2008
4,350
5,021
According to what I found apple is probably using the TLC NAND from Western Digital, which should have 150TBW for each 250gb ssd (512ssd = 300TBW) but once again - no one knows it.

To be honest I'm expecting one of three different solutions:
- one of the future macOS update will fix it
- like someone told before - it can be just a "sensor bug"
- in next 1-2 year we are gonna see ssd repair program
This makes me wonder how a potential SSD Repair Program would work, considering it’s all an SoC. When my 2015 MBPr’s battery was replaced, the entire bottom case including the keyboard needed to be replaced. It almost felt like a new laptop (RIP again). Would they have to replace the entire M1 SoC? Would they still be able to replace it with the M1 or would it be some newer variant? ?
 
  • Like
Reactions: Forti

svanstrom

macrumors 6502a
Feb 8, 2002
787
1,745
??
smartctl command line:


Code:
Data Units Read:                    2,722,922 [1.39 TB]
Data Units Written:                 2,010,586 [1.02 TB]
1yo MBP16 (fairly heavy torrent user):

Data Units Read: 66,762,250 [34.1 TB]
Data Units Written: 27,272,874 [13.9 TB]
 

alien3dx

macrumors 68020
Feb 12, 2017
2,193
524
Hi,

I have Mac mini m1 256/16 for almost 8 days. After those 8 days I can see 0.9 TB written.

From what I found on the web this ssd should last for ~~150 TBW. After 8 days I have 0.9 TBW :)

I checked on my MacBook Pro 13" from 2018, 256/16 as well. I used both machines for the same task (99% of time it's coding, swift, javascript etc).

Macbook 2018 - 47.5 TBW (after over 2years and 3-4 months)
Mac mini m1 - 0.9 TBW (after 8 days).

On both machines I used the DriveDx tool to check it.

To be honest I'm a bit surprised and scared at the same time. With this I should be near the 150TBW limit in next ~~2 years. Normally I would be like "ee ok, I will just replace it" - but here, with Mac mini I can't :)

Any thoughs on this?
sorry if you said the guy who like to code?

1.Are you using weird trending nodejs/react-native(the worst nightmare)
2.Are you doing torrenting ?ehm ehm
 

theSeb

macrumors 604
Aug 10, 2010
7,466
1,893
none
sure! here you go:

Code:
smartctl 7.2 2020-12-30 r5155 [Darwin 20.3.0 x86_64] (sf-7.2-1)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Number:                       APPLE SSD AP0256Q
Serial Number:                      0ba0122b8188c833
Firmware Version:                   1161.80.
PCI Vendor/Subsystem ID:            0x106b
IEEE OUI Identifier:                0x000000
Controller ID:                      0
NVMe Version:                       <1.2
Number of Namespaces:               3
Local Time is:                      Tue Feb 16 15:34:36 2021 CET
Firmware Updates (0x02):            1 Slot
Optional Admin Commands (0x0004):   Frmw_DL
Optional NVM Commands (0x0004):     DS_Mngmt
Maximum Data Transfer Size:         256 Pages

Supported Power States
St Op     Max   Active     Idle   RL RT WL WT  Ent_Lat  Ex_Lat
0 +     0.00W       -        -    0  0  0  0        0       0

=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

SMART/Health Information (NVMe Log 0x02)
Critical Warning:                   0x00
Temperature:                        29 Celsius
Available Spare:                    100%
Available Spare Threshold:          99%
Percentage Used:                    0%
Data Units Read:                    2,736,283 [1.40 TB]
Data Units Written:                 2,016,737 [1.03 TB]
Host Read Commands:                 41,881,217
Host Write Commands:                20,448,904
Controller Busy Time:               0
Power Cycles:                       68
Power On Hours:                     22
Unsafe Shutdowns:                   7
Media and Data Integrity Errors:    0
Error Information Log Entries:      0

Read 1 entries from Error Information Log failed: GetLogPage failed: system=0x38, sub=0x0, code=745
I am pretty shocked by these numbers. You mentioned swap in the title. Do you believe that you are running out of memory and swapping a lot? Have you checked your page outs and calculated that into bytes with vm_stat after a full day's use? Then again you would have to be swapping over 100 GBs per day.... which seems unlikely.
 

Forti

macrumors regular
Original poster
Nov 14, 2018
174
282
Gdynia, Poland
sorry if you said the guy who like to code?

1.Are you using weird trending nodejs/react-native(the worst nightmare)
2.Are you doing torrenting ?ehm ehm

c'mon, are you for real?

1. it's weird because you are saying it? :) how is it related? Like I said - I'm doing the same exactly job on both machines (swift, javascript).
2. nope ;)
 

alien3dx

macrumors 68020
Feb 12, 2017
2,193
524
c'mon, are you for real?

1. it's weird because you are saying it? :) how is it related? Like I said - I'm doing the same exactly job on both machines (swift, javascript).
2. nope ;)
1. I'm doing same thing but more language.Node Module is huge and lot of file. If you have a lot of project in react native each time init new project 1GB ? I prefer native because small and quick.
2. Sync Apple Cloud is nightmare for react-native node module and sometimes crash the computer. So this add more extra read/write.

** I prefer to test real device compare emulator so i don't increase the memory size and reduce possibility of swapping.
 

Forti

macrumors regular
Original poster
Nov 14, 2018
174
282
Gdynia, Poland
1. I'm doing same thing but more language.Node Module is huge and lot of file. If you have a lot of project in react native each time init new project 1GB ? I prefer native because small and quick.
2. Sync Apple Cloud is nightmare for react-native node module and sometimes crash the computer. So this add more extra read/write.

** I prefer to test real device compare emulator so i don't increase the memory size and reduce possibility of swapping.

Ok, I got you. You don't like node.js, javascript is a trash and native swift is smaller and quicker. And react-native (where came the idea that I'm using it?) is running 1GB each time you run the project :)

Currently I have only one swift project on my computer, and a few smaller javascript (websites).

plus - once again, because you probably miss it:

1. it has nothing to do here - like I said, I did exactly the same projects, same things on my MacBook for over 2 years ;)
2. The subject is not about which tool and language is better.
 

svanstrom

macrumors 6502a
Feb 8, 2002
787
1,745
??
If that nerdwar is open to anyone I'd like to contribute this from myself:

Real developers write vanilla javascript (but under protest, because javascript sucks), and use perl server-side (as well as Mac-side); we also don't do "native" on smartphones, because out of principle only webapps should be used.

Wanna get to fighting about favourite shells and prompts now? 😃
 

alien3dx

macrumors 68020
Feb 12, 2017
2,193
524
Ok, I got you. You don't like node.js, javascript is a trash and native swift is smaller and quicker. And react-native (where came the idea that I'm using it?) is running 1GB each time you run the project :)

Currently I have only one swift project on my computer, and a few smaller javascript (websites).

plus - once again, because you probably miss it:

1. it has nothing to do here - like I said, I did exactly the same projects, same things on my MacBook for over 2 years ;)
2. The subject is not about which tool and language is better.
A bit reverse, i prefer old style javascript the era which we don't need the source code everywhere. Been writing normal javascript , extjs(nowdays call sencha),jquery. Then come era of bower ? then npm ? then npx?

If you do samething and still thinking quirk about it maybe the "kernal task" high usage but still prefer to monitor activity monitor if something strange is happening there.

The conclusion either it was node/bower/torrent nobody know it just an idea.
 

alien3dx

macrumors 68020
Feb 12, 2017
2,193
524
If that nerdwar is open to anyone I'd like to contribute this from myself:

Real developers write vanilla javascript (but under protest, because javascript sucks), and use perl server-side (as well as Mac-side); we also don't do "native" on smartphones, because out of principle only webapps should be used.

Wanna get to fighting about favourite shells and prompts now? ?
no dear, use the right tool for the right job. As long it get your $$$ and satisfaction.
 

Forti

macrumors regular
Original poster
Nov 14, 2018
174
282
Gdynia, Poland
A bit reverse, i prefer old style javascript the era which we don't need the source code everywhere. Been writing normal javascript , extjs(nowdays call sencha),jquery. Then come era of bower ? then npm ? then npx?

If you do samething and still thinking quirk about it maybe the "kernal task" high usage but still prefer to monitor activity monitor if something strange is happening there.

The conclusion either it was node/bower/torrent nobody know it just an idea.

1. I can see a few different topics out there on the web about this issue ;) so it's not only me. My friend have MacBook m1 for video editing and he has similar high usage ;) in fact - he told me about this, I checked and came directly here.
2. Could you check your usage? I can see you have MacBook m1.
 

alien3dx

macrumors 68020
Feb 12, 2017
2,193
524
1. I can see a few different topics out there on the web about this issue ;) so it's not only me. My friend have MacBook m1 for video editing and he has similar high usage ;) in fact - he told me about this, I checked and came directly here.
2. Could you check your usage? I can see you have MacBook m1.
this on macbook air m1
 

Attachments

  • Screenshot 2021-02-16 at 11.17.06 PM.png
    Screenshot 2021-02-16 at 11.17.06 PM.png
    522.5 KB · Views: 818

alien3dx

macrumors 68020
Feb 12, 2017
2,193
524
1. I can see a few different topics out there on the web about this issue ;) so it's not only me. My friend have MacBook m1 for video editing and he has similar high usage ;) in fact - he told me about this, I checked and came directly here.
2. Could you check your usage? I can see you have MacBook m1.
this is on my imac 2017 which i'm doing heavy duty stuff. (wrong picture) updated
 

Attachments

  • Screenshot 2021-02-16 at 11.18.51 PM.png
    Screenshot 2021-02-16 at 11.18.51 PM.png
    102.3 KB · Views: 649

Forti

macrumors regular
Original poster
Nov 14, 2018
174
282
Gdynia, Poland
This is not the `Data Units Written` or so called `Terabytes written` (TBW) ;). c'mon. Data from activity monitor are pretty fine. TBW is something else.

here you go:
 

Attachments

  • Screenshot 2021-02-16 at 16.21.21.png
    Screenshot 2021-02-16 at 16.21.21.png
    289.5 KB · Views: 710

alien3dx

macrumors 68020
Feb 12, 2017
2,193
524
This is not the `Data Units Written` or so called `Terabytes written` (TBW) ;). c'mon. Data from activity monitor are pretty fine. TBW is something else.

here you go:
yeah .. seem okay for me, nothing weird. Maybe something else. Maybe new computer apple iCloud sync ? I think prefer to see this month vs next month. Just relax and enjoy new computer . Cheers man.
 
  • Like
Reactions: Forti

Forti

macrumors regular
Original poster
Nov 14, 2018
174
282
Gdynia, Poland
It's all about RAM managing as far I know. Users with 8GB ram have much higher TBW than those with 16GB.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.