This post is adapted directly from material originally created for mhatta's medium blog. He deserves the credit for the OP. It has been updated in certain places where it refers to old versions of I2P as current and has undergone some light editing. -idk
Right after it starts up, I2P is often seen as a little bit slow. It's true, and we all know why, by nature, garlic routing adds overhead to the familiar experience of using the internet so that you can have privacy, but this means that for many or most I2P services, your data will need to go through 12 hops by default.
Analysis of tools for online anonymity
Also, unlike Tor, I2P was primarily designed as a closed network. You can easily access eepsites or other resources inside I2P, but you are not supposed to access clearnet websites through I2P. There exist a few I2P “outproxies” similar to Tor’s exit nodes to access clearnet, but most of them are very slow to use as going to the clearnet is effectively another hop in the already 6 hops in, six hops out connection.
Until a few versions ago, this problem was even harder to deal with because many I2P router users were having difficulties configuring the bandwidth settings for their routers. If everyone who can takes the time to adjust their bandwidth settings properly, they will improve not only your connection but also the I2P network as a whole.
Adjusting bandwidth limits
Since I2P is a peer-to-peer network, you have to share some of your network bandwidth with other peers. You see choose how much in “I2P Bandwidth Configuration” (“Configure Bandwidth” button in the “Applications and Configuration” section of I2P Router Console, or http://localhost:7657/config).
If you see a shared bandwidth limit of 48 KBps, which is very low, then you may not have adjusted your shared bandwidth from the default. As the original author of the material this blog post is adapted from noted, I2P has a default shared bandwidth limit that is very low until the user adjusts it to avoid causing issues with the user's connection.
However, since many users may not know exactly which bandwidth settings to adjust, the I2P 0.9.38 release introduced a New Install Wizard. It contains a Bandwidth Test, which automatically detects (thanks to M-Lab’s NDT) and adjusts I2P’s bandwidth settings accordingly.
If you want to re-run the wizard, for instance following a change in your service provider or bcause you installed I2P before version 0.9.38, you can re-launch it from the 'Setup' link on the 'Help & FAQ' page, or simply access the wizard directly at http://localhost:7657/welcome
Using the Wizard is straightforward, simply keep clicking “Next”. Sometimes M-Lab’s chosen measurement servers are down and the test fails. In such case, click “Previous” (do not use your web browser’s “back” button), then try it again.
Running I2P continuously
Even after adjusted the bandwidth, your connection might still be slow As I said, I2P is a P2P network. It will take some time for your I2P router to be discovered by other peers and integrated into the I2P network. If your router not up long enough to become well integrated, or if you shut down un-gracefully too often, the network will remain fairly slow. On the other hand, the longer you run your I2P router continuously, the faster and more stable your connection becomes, and more of your bandwidth share will be used in the network.
However, many people might not be able to stay your I2P router up. In such case, you can still run the I2P router on a remote server such as VPS, then use SSH port forwarding.