IRCaBot 2.1.0
GPLv3 © acetone, 2021-2022
#saltr
/2023/06/11
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 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 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