veracrypt / VeraCrypt

Disk encryption with strong security based on TrueCrypt
https://www.veracrypt.fr
Other
6.98k stars 955 forks source link

Very bad performance on NVME SSD #136

Open stylersnico opened 7 years ago

stylersnico commented 7 years ago

Hi,

Please don't take that as a complain, I only wish to help improve the software so I can use it.

I achieve very bad performance on Windows 10 LTSB 2016 with a Samsung EVO 960 250Gb and Veracrypt AES encryption:

Before :

before

After :

after

My hardware :

I7 7700k @ stock 16Gb Corsair DDR4 Samsung 960 Evo 250Gb with up to date Samsung NVME driver Windows 10 LTSB 2016 up to date Veracrypt 1.19 64 bits

Veracrypt Benchmark :

image

How can I manage to get close performance to non encrypted drive ? Is this even possible ?

Thanks and best regards, Nicolas

JAFriedrich commented 3 years ago

It would be really nice if this problem was tackled and solved eventually.

Set up a slim crowdfunding campaign for it and I would contribute aswell as others have stated.

@idrassi love your work, many thanks. I hope VeraCrypt will go strong for years to come.

MisterSponge commented 3 years ago

I'd be willing to add some money to the pot as well. What would be the best service for this? Am I correct in that only contributors can add Veracrypt to Issuehunt?

JAFriedrich commented 3 years ago

Am I correct in that only contributors can add Veracrypt to Issuehunt?

Yes, contributors can add it to IssueHunt. I think this would be a really good idea.

TerrestrialHost commented 3 years ago

What are the pre-reqs or other barriers for having the project added to IssueHunt? Or do the devs maybe prefer a different platform, for whatever reason? I noticed there are a handful, and have no biases regarding them as of yet. Aside from contributing myself, I have in mind a potential commercial sponsor which could be a major boost, as long as they don't attempt to set any conditions that could compromise independence of the project.

idrassi commented 3 years ago

Thank you all for your proposal to help fund fixing this issue. Funding will help,not only me but also find other developers who can help with there expertise. Concerning platforms like IssueHunt, the problem is always the high fees that end up being taken (e.g. 17% total in case of IssueHunt). But at the same time, managing a crowdfunding campaign directly is not easy. Anyway, before going this way, I prefer to do some planning for the project activities for the coming months in order to be sure that things can be organized well. 2020 has been chaotic for me like everybody else and hopefully 2021 will be better. I will update this ticket as soon as things are clearer.

SirStumfy commented 3 years ago

Glad to hear this is in the works. With ever increasing NVME popularity this really needs to be on the top list of fixes.

Recently I tested it on a Gen4 SSD, the hit is honestly immense. From 8GB/s to 2GB/s, and this is on a AMD 3900X.

Perhaps a driver split would be an option? A driver for containers and a driver for full disk encryption? I personally use VC only for full drive encryption, and I guess there are others like me.

Perhaps as mentioned if funds are an issue this could be achieved with a crowd funding campaign.

thelele commented 3 years ago

Same here, it's a big issue with NVME being more and more popular and use by people.

Would love to contribute with a donation for the development of this feature to solve NVME perfomance issues.

Thank you for your work.

realies commented 3 years ago

Same issue here, the NVMe has about 4x lower performance than expected

DaveFlowberries commented 3 years ago

same issue, 4tb samsung evo

DaCoolX commented 3 years ago

I will also throw my hat into the ring in regards to funding this specific issue.

amukas commented 3 years ago

Create drive/container with PIM = 1, it will speed up write a lot. With default value (when you set PIM 0 or don't specify) I had 50MB/s, after I changed to PIM=1 - 240MB/s (Seagate IRONWOLF PRO CMR 10TB). Additionally, make sure that the algo is good enough, in my case it is AES, with hardware acceleration my CPU can encrypt/decrypt 6.3 GB/s.

Don't forget to use a long password (30+ chars)

daiveedx commented 3 years ago

Are you sure about this? This is so weird since PIM is supposed to be used only when you enter the password in order to derive the key. Once it's done, the key is used for any further access without the PIM having any use / impact.

scurfin commented 3 years ago

I can't confirm this. I got the same low read speed of ~610 MB/s (~3500 MB/s without encryption) with either PIM set to default or 1 (Samsung 970 EVO NVMe M.2 SSD 500 GB).

amukas commented 3 years ago

@daiveedx I agree, but it was the only change. I had to copy 3TB of data to HDD, for few hours I was seeing ~50MB/s. So I started looking for a solution. After I recreated the volume (full disk encryption) with PIM=1, it improved the write to 240MB/s. I use AES + SHA512 with exFS, because I need compatibility between systems.

@scurfin unfortunately, I don't have internal nvme, I use external nvme drive connected via USB 3.2. With encryption ~700MB/s, without ~1000MB/s.

I run additional tests with ram drive. I found that if you use NTFS write speed goes to 2GB/s with exFS 1GB/s.

valnar1 commented 3 years ago

I'm glad this problem is finally getting attention, but for those who don't want to wait, I've been happily using BestCrypt (as mentioned before) for years with no problems. I trust it more than Bitlocker.

Ceiridge commented 3 years ago

Are the developers working on this issue? The last commit is from March. Is there a dev branch I don't know of?

nqtronix commented 3 years ago

Same problem here, never noticed before I got a NVME SSD. I'd also contribute to the funding for development of a faster driver.

bootsmann commented 3 years ago

m.2 970 EVO: encrypted with 1.24-Update8 CrystalDiskMark decrypted CrystalDiskMark_2 Over 40% less power. Fix it plz!

DenisKlimek commented 3 years ago

Same problem here with an Kingston M.2 SSD PCIe 3.0 (KINGSTON OM8PCP3512F-A02 512,1 GB) ...

I created three different benchmarks (AES):

kingston_without_encrypted kingston_encrypted kingston_encrypted_pim1

Are VeraCrypt developers already working on a fix for this horrible bottle neck?

anon88391 commented 3 years ago

This issue is top priority and hasn't been fixed for almost 5 years now. I seriously doubt the developers ever cared enough to do anything about it. DiskCryptor is back in development and doesn't have this issue so perhaps we should use it for full disk encryption.

csidirop commented 3 years ago

The newest DiskCryptor release is over an one year (April 2020) old and the last commit 8 months. There seams to be some development, but its a one man show at this moment.

SMESH109 commented 3 years ago

I'm using the DiskCryptor 1.2b3 since I first set up a full PC encryption with a Samsung NVMe as boot drive. It works just fine with Windows 10 for over half a year, no problems whatsoever. I still use some Veracrypt containers in-OS, though.

ghost commented 3 years ago

The same situation, I use it with GPT partition as well. All is fine. I think it is in beta only to be sure that there are no errors on all configurations.

ghost commented 3 years ago

one man show at this moment

I think it always was one man show. But it is extremely nice show.

DeVIL-I386 commented 3 years ago

(DiskCryptor) I had to decrypt the system partition twice - each time after updating Windows - and then encrypt it again. Even if I manually selected DiskCryptor in the boot menu, it did not work after the Windows update (GPT/EFI).

But I can live with that. However, I cannot recommend it to everyone if they are not very familiar with computers. You know what I mean

cypherbits commented 3 years ago

The thing is: do we know why this is happening?

Ceiridge commented 3 years ago

@cypherbits Yes: https://github.com/veracrypt/VeraCrypt/issues/136#issuecomment-443522115

Equim-chan commented 3 years ago

Any milestone or schedule for this issue yet?

dfg555 commented 3 years ago

MX500 I just want my nut drive to be faster Sadge.

image

AKmatiAK commented 2 years ago

I can confirm issue. Write speed is ok but read is half of normal.

PatrykMis commented 2 years ago

@idrassi released new version of VeraCrypt. As stated in release notes:

  • Under registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\veracrypt:
    • VeraCryptEncryptionFragmentSize (REG_DWORD): size of encryption data fragment in KiB. Default is 256. Maximum is 2048.
    • VeraCryptEncryptionIoRequestCount (REG_DWORD): maximum number of parallel I/O requests. Default is 16. Maximum is 8192.
    • VeraCryptEncryptionItemCount (REG_DWORD): maximum number of encryption queue items processed in parallel. Default as well as maximum is half of VeraCryptEncryptionIoRequestCount.
  • The triplet (FragmentSize=512, IoRequestCount=128, ItemCount=64) is an example of parameters that enhance sequential read speed on some SSD NVMe systems.

Does someone have experience playing with these values?

ghost commented 2 years ago

@PatrykMis Here are the results of a test I did on my laptop using the example parameters from the changelog:

Before

before

After

after

r4tt4 commented 2 years ago

Just found this thread about the worse performance of VC. Added the .reg entries with the sample values and can tell you that the performance on conventional HDD is much better then before. R/W is now near twice as fast then without the settings. Would recommend everybody to try this out.

Regards

Fireballcz commented 2 years ago

Hello, Please REG entries: HEX or DEC values? Thanks

ThinkingMonkeyv2 commented 2 years ago

Hello, Please REG entries: HEX or DEC values? Thanks

The “size of encryption data fragment in KiB” is an actual size (Idrassi recommends trying 512) so presumably the values are decimal. 512 would be 200 in Hex notation so using the Hex value wouldn’t make sense.

Fireballcz commented 2 years ago

Hello, Please REG entries: HEX or DEC values? Thanks

The “size of encryption data fragment in KiB” is an actual size (Idrassi recommends trying 512) so presumably the values are decimal. 512 would be 200 in Hex notation so using the Hex value wouldn’t make sense.

Thank you!

Fireballcz commented 2 years ago

Hello, Maybe, you will find st interesting in my following info: I have two identical comps with clean and fully actual W10 systems. i7-8700K-32D4-2TB ADATA XPG SX8200 i9-9900K-32D4-2TB Samsung EVO 970 Plus Both mobos are Gigabyte C246M WU4. Installed latest VeraCrypt, no PIM, identical pass. After some labour I found the best REG config 1024-256-128. I made identical CrystalDiskMark test. I was amazed! My more powerful comp with better NVMe was about 10-15% WEAKER !!!! I said, something is wrong. lets make REAL LIFE tests, of course, identical for both comps. 1) copying videofile about 50GB from one folder to another, and 2) 15GB of standard data (docs, images, etc, all from a few kilos to 5MB) Result? Funny! Copying one file 50GB: i7 about 97 secs, i9 43 secs Copying 15GB bunch of files: i7 about 113 secs, i9 47 secs. DO NOT BELIEVE SYNTHETIC BENCHMARKS, JUST REAL LIFE!!!

lnawrat commented 2 years ago

It breaks my heart, but this issue is becoming a deal-breaker for me 💔 I would be happy to contribute funding to the development work on this, as others declared. @idrassi , any idea on how we can help with providing resources for the work?

oliveirarafa commented 1 year ago

I think that a issue that I opened might be related to this problem.

1032

leftdisconnected commented 1 year ago

This issue is top priority and hasn't been fixed for almost 5 years now. I seriously doubt the developers ever cared enough to do anything about it.

The idrassi poster in this thread is the primary developer, Mounir Idrassi, but he has not devoted all of his time to VeraCrypt as he has to have a paying job like most of us.

Blaming volunteer developers who often pay for website hosting and download bandwidth out of their own pockets for not "caring" enough is utterly ridiculous and shows just why the open source model is so broken. Put yourself into the shoes of open source developers before being too harsh; constructive criticism is healthy, but insults and accusations are not.

It's absolutely fine to be unsatisfied and to move away from a project that doesn't suit your needs. Perhaps enough people will care about this that they help idrassi improve VeraCrypt performance or help him connect with people who know how to do so. Volunteers who know the plumbing of Windows I/O are welcome to join in.

I was involved as a non-coder with another project that dealt with hardware storage controllers and learned that they are horribly non-compliant with protocols (i.e. ATA, AHCI). Operating systems simply avoid many legal commands in order to maximize compatibility with poorly implemented controllers. It's amazing that any of this works at all, so idrassi might be avoiding this rabbit hole of potential ruin ;).

There's probably a good reason that code was stolen from E4M decades ago. It worked.

Ceiridge commented 1 year ago

This issue is top priority and hasn't been fixed for almost 5 years now. I seriously doubt the developers ever cared enough to do anything about it.

The idrassi poster in this thread is the developer (singular), but he has been unable to devote as much time to VeraCrypt in recent years due to insufficient financial support; he has to have a paying job. You have every right to complain about this long-standing issue, BUT only if you've done your part and donated to the project.

Blaming volunteer developers who often pay for website hosting and download bandwidth out of their own pockets for not "caring" enough is utterly ridiculous and shows just why the open source model is so broken; the developers are sacrificing themselves for users that are simply selfish and don't appreciate what's being done for them for free. They just demand more all the time and offer nothing in return.

But I do hope that enough people care about this that they help idrassi improve VeraCrypt performance or help him connect with people who know how to do so.

I have always been asking myself how many super rich people, like CEOs or perhaps billionaires, use VeraCrypt. Because their security has to be at a maximum somewhat. I've seen VeraCrypt in use in the wild quite often, mostly people that do something in IT (and use Windows of course). I would find it hard to believe that people with that much resources (like billionaires or similar) would actually use their computers or laptops unencrypted or use Microsoft's ShitLocker. Do they want their systems to be maximally secure? Then maybe they should ensure the VeraCrypt developers to be able to develop by making it able for them to dedicate to it full-time. But of course they would rather move their money to idiotic consulting companies to state the obvious for instance than pay a relatively tiny amount of money into areas where it is effective. Of course I'm talking against a wall right now. This won't be read and it's the same for almost every open-source project. Unless you're used by billions of people some way or another (for example Chromium or ReactJS), you will never fully work on an open-source project and even then it requires giant supporters like Google and Meta (in the case of the aforementioned open-source projects).

At least it's very good to see that the current wave of AIs is quite open-source. There is almost always a very good open-source competitor, a lot of good models are open, and there are public papers. The result: An enormous community that improves the technology extremely fast and effectively (I'm talking about Stable Diffusion, especially if you compare it to crappy paid services like Dalle-2, which has not improved a bit since its release, because why innovate if there are profits to be made without it? Because open-source projects are not profit-driven, they innovate regardless, at the cost of the free-time of the developers.) In general, open-source donations are donations. Nobody ever donates. Money always goes to where there is more to be made. This is basic rational behavior and why rarely anyone donates to charities. Maybe the main reason is to wash their reputation with it. Donating to VeraCrypt is not lost money without an effect for the donor, but it increases security and performance for its users. It is rational to donate for those who can afford making big changes.

ghost commented 1 year ago

You have every right to complain about this long-standing issue, BUT only if you've done your part and donated to the project.

Complaining is not some sort of purchasable right. Other than that you have reasonable arguments, it is better to stick to them instead of making up rules according to your morals to try to censor.

ghost commented 1 year ago

So, what do we need to do to progress? What is the action plan?

frubart commented 1 year ago

I'm aware of this issue since I got my first SSD many years ago and it's the reason I have used diskcryptor for FDE since then (under Windows 7). Now I'm going to install Windows 11 and have to decide again between diskcryptor and Veracrypt for the SATA SSD on that older system. Is Veracrypt still significantly slower than diskcryptor even with these new registry settings?

Fireballcz commented 1 year ago

Is Veracrypt still significantly slower than diskcryptor even with these new registry settings?

Yes. DiskCryptor possibly can not be used with W11, because secure boot is required...

ThinkingMonkeyv2 commented 1 year ago

It may be a moot point. There is discussion on the VeraCrypt SourceForge forums recently not whether this issue will ever be fixed but whether development for VeraCrypt itself is dead. Activity by the developers has dwindled to basically (or literally) zero for a year now and they are not answering questions from users as to the life (or death) of the project. Tragically, and ironically, very much the same way TrueCrypt died it’s death.

UPDATE: (05 Aug 2023) As Mark Twain once said, "The report of my death was an exaggeration" (in response to a New York Journal article stating that he had died, which he clearly had not). The developers have recently become active again, almost hyperactive, as 4 point releases have been released on Veracrypt Nightly builds within about a month (1.26 to 1.26.4 (current) with many changes. fixes, and even new features. VERACYPT IS NOT DEAD!

Fireballcz commented 1 year ago

Maybe @idrassi should fairly tell us, if donations (and also which total amount) will help him to start work on it, if possible. I prefer VC over all, because I believe it. I'll be fine with speed, safety is primary.

frubart commented 1 year ago

Yes. DiskCryptor possibly can not be used with W11, because secure boot is required...

Win11 can be installed without secure boot (and without TPM); for this there are simple registry settings which one can implement into the installation files or import during setup. The latest DiskCryptor is compatible with UEFI and the maintainer wrote that he's using it with Windows 11 himself. He also provided a secure boot shim so that secure boot can stay enabled in the BIOS in order to boot other OS on the PC with full secure boot. That's the way I understand it, as I haven't tried it yet. I read that the lack of secure boot and/or TPM weakens the security of Win11 significantly against attackers during use of the system, but if one doesn't trust bitlocker for the drive encryption and worries more about losing the drives and having an attacker work on them afterwards, then DiskCryptor is the only and faster alternative to Veracrypt. DiskCryptor just lacks a secure boot certification, of which the maintainer said he would be willing to obtain it from Microsoft if he would get enough funding. The maintainer also wrote "linux supports secure boot properly so you could set something up with grub and a custom certificate to have secure boot and DC" but I lack the knowledge how it would be done. Maybe someone here could elaborate on this?

inliquid commented 1 year ago

I read that the lack of secure boot and/or TPM weakens the security of Win11 significantly against attackers during use of the system

TPM stores the encryption keys, thus improving (simplifying) user experience, as the user won't need to remember and enter complicated password every time when system boots. Even PIN code is optional, so the system can easily start (assuming there is no way to bypass login screen, which is not true ofc). They also claim that TPM is more secure because it won't allow bruteforcing of PIN/password. But it's definitely a closed system which stores your keys and definitely a system which can have vulnerabilities/backdoors.

So my understanding is TPM less secure if you understand what you're doing, no matter is it Bitlocker or any other open/closed source encryption software, which you use to protect data. Bitlocker can still work without TPM with password-based key protection.

frubart commented 1 year ago

Bitlocker can still work without TPM with password-based key protection.

It is also my assumption that Bitlocker with only the password option and a local account is a good way to set it up, but I was thinking of other Windows security features that rely on the TPM, though I'm not familiar with them. I'm not sure if there are some that are relevant for a typical home and small business application. Here's an overview: https://learn.microsoft.com/en-us/windows/security/information-protection/tpm/how-windows-uses-the-tpm