Hacker Newsnew | past | comments | ask | show | jobs | submit | jimis's commentslogin

So each enclosure hosts its own RAIDZ2. Have you tested if it can survive loss of USB connectivity? It can happen because of cable damage or movement, and also because of any failure in the enclosure's electronics.


Each drive shows up as an external USB mass storage device?


I don’t know if it’s USB mass storage. It just shows up as separate devices in lsblk.


What is the systemd equivalent for `service crond stop` and later `service crond start`?

In other words, I want to disable all jobs for some time (for benchmarking) and then bring them back up.


Maybe you could make a target unit file like “jobs.target” and in your timer unit files do “WantedBy=jobs.target”. Then you could do “systemctl start/stop jobs.target”


First, list and save the currently active timers: ```bash systemctl list-timers --state=active --no-legend | awk '{print $NF}' > /tmp/active_timers.txt ```

Stop all active timers: ```bash sudo systemctl stop $(cat /tmp/active_timers.txt) ```

Later, restart the previously active timers: ```bash sudo systemctl start $(cat /tmp/active_timers.txt) ```


Like the others said, you have to list them and save it somewhere, it could be better in that regard.


I would try *.timer. If you’re in zsh, quote it.


  > The DC-ROMA RISC-V Pad II starts at $149 for the 4GB RAM version and is already available for pre-order on the DeepComputing store. 
  > If you get the 16GB RAM variant, the tab is compatible with the Android Open-Source Project (AOSP) Android 15 operating system.
Weird, isn't 4GB RAM enough for Android 15? Or is AOSP compatibility completely separate from Android compatibility?


Who are the phone/tablet manufacturers that are friendliest to rooting or installing open-source Android clones? It's a pain to do that on my Samsung Galaxy devices...

I'm looking to buy a (new) 10'' tablet for that purpose.


Google Pixel is one of the easiest. Usually carries a lot of dev support even after Google themselves EOLs it.


Not Android, but have a look at Librem 11 tablet.


Google (Pixel Tablet in your case).


It's not the same buying a new product from official supplier, to buying something old and/or used from an unknown entity on eBay.


Certified refurbishers usually sell fine machines, and give a year of guarantee, or so.


> bloat their io buffer size to several GiB, set the eviction priority to 1

How do you tweak these? I'm aware of dirty_writeback_centisecs and the likes, but you are most likely referring to something different.


YOLO mountflags for ext4 that minimize synchronous writes:

    data=writeback,journal_async_commit,lazytime,nobarrier,commit=99999
Good for caches, scratch space, build dirs and anything that can be rebuilt from other data but it'll get corrupted during any non-graceful shutdown.

overlayfs offers an even more aggressive mount option "volatile" which ignores all O_SYNC or fsyncs, but no other filesystem exposes that tradeoff.


Have a look at dedicated external journal disk performance for ext4. It actually is pretty fast, and relatively safe.

I find performance wise, a logging fs like f2fs is actually not as terrible as one would expect for most use-cases:

UUID=abc /home f2fs defaults,noatime,nodiratime,noquota,discard,nobarrier,inline_xattr,inline_data 0 2


No, you're thinking along the right lines. These things are kernel tune ables. If you thumb through the sysfs kernel docs you can find loads of options on this sort of thing.


These settings heavily depends on your OS, hardware, and use-case.

This profile is what I prefer for AORUS 5/RTX3070/i7-12700H/16GB laptops, and despite how terrible the OEM hardware is... this setup will run acceptably well with dual Intel 670p M.2 drives.

The following should work with most Debian variants, but is hardly optimal for every platform. But if your laptop is similar, than it should be a good place to start. One caveat, when ejecting media it may take some time to flush your buffers.

sudo nano /etc/sysctl.conf

net.ipv4.conf.all.rp_filter = 1

net.ipv4.conf.default.rp_filter = 1

# Ignore ICMP broadcast requests

net.ipv4.icmp_echo_ignore_broadcasts = 1

# Disable source packet routing

net.ipv4.conf.all.accept_source_route = 0

net.ipv6.conf.all.accept_source_route = 0

net.ipv4.conf.default.accept_source_route = 0

net.ipv6.conf.default.accept_source_route = 0

# Ignore send redirects

net.ipv4.conf.all.send_redirects = 0

net.ipv4.conf.default.send_redirects = 0

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_max_syn_backlog = 2048

net.ipv4.tcp_synack_retries = 2

net.ipv4.tcp_syn_retries = 5

net.ipv4.conf.all.log_martians = 1

net.ipv4.icmp_ignore_bogus_error_responses = 1

net.ipv4.conf.all.accept_redirects = 0

net.ipv6.conf.all.accept_redirects = 0

net.ipv4.conf.default.accept_redirects = 0

net.ipv6.conf.default.accept_redirects = 0

net.ipv4.icmp_echo_ignore_all = 1

#ban list mem

net.core.rmem_default=8388608

net.core.wmem_default=8388608

#prevent TCP hijack in older kernels

net.ipv4.tcp_challenge_ack_limit = 999999999

#may be needed to reduce failed TCP links

net.ipv4.tcp_timestamps=0

net.ipv4.tcp_rfc1337=1

net.ipv4.tcp_workaround_signed_windows=1

net.ipv4.tcp_fack=1

net.ipv4.tcp_low_latency=1

net.ipv4.ip_no_pmtu_disc = 0

net.ipv4.tcp_sack = 1

net.ipv4.tcp_mtu_probing = 1

net.ipv4.tcp_frto=2

net.ipv4.tcp_frto_response=2

net.ipv4.tcp_congestion_control = cubic

net.ipv4.tcp_window_scaling = 1

kernel.exec-shield=1

kernel.randomize_va_space=1

#reboot on kernel panic after 20 sec

kernel.panic=20

vm.swappiness=1

vm.vfs_cache_pressure=50

#percentage of system memory that can be filled with dirty pages

# run to check io performance with: sudo vmstat 1 20

vm.dirty_background_ratio=60

#maximum amount of system memory filled with dirty pages before committed

vm.dirty_ratio=80

vm.dirty_background_bytes=2684354560

vm.dirty_bytes=5368709120

#how often the flush processes wake up and check

vm.dirty_writeback_centisecs=10000

#how long something can be in cache before it needs to be written

vm.dirty_expire_centisecs=60000

vm.min_free_kbytes = 16384

# increase system file descriptor limit

fs.file-max=120000

#CONNTRACK_MAX = RAMSIZE (in bytes) / 16384 / (number_of_bits_in_a_pointer / 32)

#low power CPU should halve mem usage limits

net.ipv4.netfilter.ip_conntrack_max = 16384

net.netfilter.nf_conntrack_max = 16384

net.nf_conntrack_max = 16384

net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 86400

kernel.pid_max = 32767

net.ipv4.ip_local_port_range = 2000 65000


> after paying more money than it would cost to buy a basic laptop

No need to be imprecise, unless you are trying to push some agenda. The cost is CHF 198, which is around USD 195.


Yeah, a lot of things cost more than a basic laptop. Last I checked, you can get Chromebooks on the order of $20 or so per machine. That metric isn't useful to anybody.


They are only slow to compress. They are as fast to decompress, or even faster sometimes. Source: I tested.


Yeah thats correct. I'll just point out that they use a larger window size, so they will use more memory to decompress, but will still be fast.


JGit has advanced a lot, and is in use in software handling huge repositories like Gerrit code review system. Java has also had numerous advancements in the past 10 years.

It would be interesting to measure git vs JGit performance today.

It would also be interesting to have JGit developers comment on performance after all this time.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: