~dr|z3d
@RN
@RN_
@StormyCloud
@T3s|4
@T3s|4_
@eyedeekay
@orignal
@postman
@zzz
%Liorar
+FreefallHeavens
+Xeha
+bak83_
+cancername
+cumlord
+hk
+profetikla
+uop23ip
Arch
Danny
DeltaOreo
FreeRider
Irc2PGuest19353
Irc2PGuest48042
Irc2PGuest64530
Meow
Nausicaa
Onn4l7h
Onn4|7h
Over
acetone_
anon4
anu3
boonst
enoxa
mareki2pb
mittwerk
not_bob_afk
plap
poriori_
shiver_
simprelay
solidx66
u5657
weko_
ReturningNovice
what would I gain over running it with JDK18 ?
Hikari
three
mesh
ReturningNovice: better performance
ReturningNovice
being serial though, mesh what are you seing? does it run better?
mesh
ReturningNovice: with generational zgc
ReturningNovice
ok.
ReturningNovice
so garbage collection keeping memory use down? faster crypto operations?
ReturningNovice
and it is noticable to you?
mesh
ReturningNovice: it seems significant though there's no hard numbers, I just started playing with it
obscuratus
In my experience, zgc is theoretically more for latency. Others are better for memory consumption.
mesh
that's basically correct
mesh
zgc gives you low latency. but it does eat a bit of cpu load. in my experience i2p+ responds very well to low latency oriented zgc
ReturningNovice
and you don't need any changes in I2P itself; just run it under the newer version of java?
mesh
ReturningNovice: yeah. do you know how to run i2p from the command line?
ReturningNovice
meaning .i2p/i2prouter start
ReturningNovice
or do you mean the unwieldy full java command with all the paths and things
mesh
$JAVA_HOME/bin/java -Di2p.dir.base="${I2P_INSTALL_DIR}" -Di2p.dir.pid="${I2P_WORKSPACE_DIR}" -Di2p.dir.tmp="${I2P_WORKSPACE_DIR}/data/tmp/" -Di2p.dir.config="${I2P_WORKSPACE_DIR}/data/config/" -Djava.library.path="${I2P_INSTALL_DIR}/lib" -cp "${I2P_INSTALL_DIR}/lib/*" ${JAVA_OPTS} net.i2p.router.Router
mesh
that's the basic idea
dr|z3d
no need for that. you just need to modify the jvm startup parameters in wrapper.config
mesh
then you can use opts like: -XX:+UseZGC -XXX:+ZGenerational -XX:+UseNUMA -XX:+UseStringDeduplication -XX:+SoftMaxHeap=4g ... that seems to work well for me at least
obscuratus
I'm with dr|z3d on this one, the easiest way to modify things like your GC is with wrapper.config.
mesh
I don't really see the point of wrapper.config. All it does is obscure a basic java call at the end.
ReturningNovice
I think my startup line (as read in htop) is a bit longer than what you pasted mesh@j6.i2p
obscuratus
Is there a place in your home directory to plop a user wrapper.config that will over-ride the system wrapper.config?
dr|z3d
no
dr|z3d
wrapper.config _must_ run from the application dir.
ReturningNovice
1. make backup, 2: modify wrapper.config, B. run I2P
obscuratus
That's my main complaint about the Java service wrapper. My modifications to wrapper.conf get over-written on re-installs.
dr|z3d
if you're building your own installer, obscuratus, just modify wrapper.config before you build. you could include a separate copy with the installer that you then manually rename to overwrite default.
mesh
it would actually be cool if I2P understood the concept of of a workspace dir. I'll probably give that a go soon enough
dr|z3d
I2P+ does something vaguely similar for the installer. An abbreivated, mostly comment-free wrapper.config file with an additional config file with full comments.
mesh
ReturningNovice: the launching command should be as simple as: $JAVA_HOME/bin/java -Di2p.workspace.dir="${I2P_WORKSPACE_DIR} ...
mesh
and then you can remove all the crap about specifying a dir.pid and dir.tmp
ReturningNovice
in htop, (and probably top) I get a longer string like what you pasted earlier, but a bit longer
mesh
and actually i2p could figure out its install dir in order to locate things like native libraries
mesh
the code to do that is pretty straight forwards. so you should just be able to specify a single workspace dir and a main class and the JAVA_OPTS. That's all my actual java progs work.
dr|z3d
the wrapper serves a few useful purposes. it simplifies configuration of the jvm, it enables i2p to run as a service, and it maintains a separate log that's accessible from the console. not useless.
dr|z3d
without the wrapper, there is no restart functionality, no auto-update and restart.
mesh
yeah I was curious how the wrapper.log worked
ReturningNovice
Now you know, and knowing is half the battle. G.I.Joe!
mesh
dr|z3d: my users are already familiar with launching and shutting down java programs. I think for them the wrapper is just another moving part. I also discourage people from running i2p as a service or using the i2p installer. Best is to run i2p from the command line and keep everything on a separate encrypted usb
dr|z3d
I2P works best as a service, not a user-facing application.
mesh
it consumes too much cpu to run as a bg service realistically I think. Also, at least on windows, using it a service requires the whole installer rigaramole
dr|z3d
It shouldn't use any more cpu running as a service than running as an application.
mesh
hehe I've actually had my laptop overheat thanks to the combo of i2p and gaming. though I really blame crappy, poorly designed and tested dell hardware for that
mesh
dr|z3d: no of course not. but it's easier to start and stop i2p if it's a user facing application and not a service. This is a case where different users have different needs. you want a service when running i2p on an always-on server
mesh
but on your local laptop or desktop I don't think using the service stuff is that useful
dr|z3d
Again, that's not true. You can stop it quite happily from the console, or from the services tab in your task manager. What you shouldn't be doing is stopping it like an app if you're servicing transit tunnels. So running it as a service is recommended.
mesh
I'd be curious if most users actually run i2p continously on their daily driver. At least for many of my users they all want an easy way to start and stop i2p. i2p uses a good bit of cpu and it's definitely more secure to not use it as a service
mesh
there are countries where using i2p is actually illegal and can land you in jail. in that case you **definitely** don't want to install i2p and run it as a service
dr|z3d
That's a question of education vs seeming convenience. You educate the user how the service works, how tunnel participation works, and how to manage the service from the console (for shutdown), and the service manager for manual startup.
dr|z3d
It's not difficult to set the service to manual startup.
dr|z3d
In fact, there are icons(shortcuts) supplied with the windows installation to allow easy stop/start of the service.
dr|z3d
So yeah, I call bullshit.
mesh
heh
mesh
yeah I'll tell people to install i2p as a service and when their laptop gets seized and searched and i2p is found I'll tell them you called bullshit
dr|z3d
oh, sure, just because they don't have it running as a service will protect them from a seizure. "oh look what we found, an i2p install, but that's ok, because the user hasn't installed the service".
mesh
the point is that some users don't want to install i2p at all. and if you don't install i2p you can't use the service stuff
mesh
not sure what's so hard to understand: there are very good reasons why people wouldn't want to install i2p or use the service mechanism. like "don't to go to jail" reasons
dr|z3d
so do something useful, reinvigorate the portable installation for windows.
mesh
being able to run i2p from a separate usb drive as a normal java program ends up being very useful. see also portable tor: it's the same idea
dr|z3d
we've had this dicussion before. complaining about stuff will only get you so far, actually implementing stuff will get you further.
mesh
heh, I wasn't complaining. I was literally explaining why some people don't want to use the services or installer stuff
dr|z3d
well you have users, apparently. make them happy, contribute to the project.
dr|z3d
functional i2p running from a single directory with wrapper support. that's your objective.
mesh
why
mesh
what works now is simply taking a zip, unzipping it, and running a java command
mesh
nothing else is needed
dr|z3d
why? because there's an apparent demand for a portable i2p that doesn't touch your local storage, according to you. and because without wrapper support, there is no restart functionality. and because it's good to contribute if you can, and you actually want to help other people. if you don't, then forget everything I just suggested.
dr|z3d
All too often I hear people talk about how the network would be even better with more people using it, and when it comes to helping achieve that, they do precisely nothing. Shit got boring a long time ago.
dr|z3d
you've even got a starting point you can work on, mesh. ant pkg-portable-win32