Comments (11)
@szepeviktor You can rebundle as a new phar I guess. Unless you can require 'cachetool.phar'
?
from cachetool.
And without human-readable M/kbytes.
from cachetool.
When using as a library the server will have a lot of unpackaged/uncontrolled files.
from cachetool.
The current work-around is
#!/bin/bash
declare -r -i OPCACHE_MIN_MB="5"
declare -r -i OPCACHE_STRING_MIN_MB="1"
# opcache.memory_consumption
Opcache_free() {
local -i OPCACHE_MB
local -i MIN="$1"
OPCACHE_FREE="$(cachetool opcache:status | sed -n -e 's/^| Memory free\s\+| \(\S\+ \S\+\)\s*|$/\1/p')"
# Test human-readable bytes
grep -q -F "MiB" <<< "$OPCACHE_FREE"
# Integer only size
OPCACHE_MB="$(cut -d " " -f 1 <<< "$OPCACHE_FREE" | cut -d "." -f 1)"
test "$OPCACHE_MB" -ge "$MIN"
}
# opcache.interned_strings_buffer
Opcache_string_free() {
local -i OPCACHE_MB
local -i MIN="$1"
OPCACHE_FREE="$(cachetool opcache:status | sed -n -e 's/^| Strings memory free\s\+| \(\S\+ \S\+\)\s*|$/\1/p')"
# Test human-readable bytes
grep -q -F "MiB" <<< "$OPCACHE_FREE"
# Integer only size
OPCACHE_MB="$(cut -d " " -f 1 <<< "$OPCACHE_FREE" | cut -d "." -f 1)"
test "$OPCACHE_MB" -ge "$MIN"
}
# opcache.max_accelerated_files
Opcache_max_keys() {
local -i OPCACHE_CACHED_KEYS
local -i OPCACHE_MAX_KEYS
OPCACHE_CACHED_KEYS="$(cachetool opcache:status | sed -n -e 's/^| Cached keys\s\+| \(\S\+\)\s*|$/\1/p')"
OPCACHE_MAX_KEYS="$(cachetool opcache:status | sed -n -e 's/^| Max cached keys\s\+| \(\S\+\)\s*|$/\1/p')"
test "$OPCACHE_MAX_KEYS" -gt "$OPCACHE_CACHED_KEYS"
}
set -e
Opcache_free "$OPCACHE_MIN_MB"
Opcache_string_free "$OPCACHE_STRING_MIN_MB"
Opcache_max_keys
from cachetool.
@szepeviktor Might be easier for you to go through the PHP API
from cachetool.
So you're suggesting me a rewrite in PHP.
from cachetool.
When using as a library the server will have a lot of unpackaged/uncontrolled files.
Is there a way to use one phar file? This shell script is one part of a monitoring solution so all cachetool source files have nowhere to go.
from cachetool.
I dunno man. I just found this tool, I know almost nothing about it. The maintainer didn't respond to you, so I was just offering an alternative if you don't want to wait. Yes -- my suggestion is to rewrite in PHP. It should be like 5 lines of code. Use the API to grab the $info, then you can json_encode
it just like you wanted.
from cachetool.
$ composer require gordalina/cachetool
$ find -type f | wc -l
1264
So my monitoring solution would grow by 1264 files :-)
from cachetool.
There are a couple of solutions to this problem:
require
the phar as @mnpenner suggested:
include 'phar://cachetool.phar/path/to/file.php';
// use cachetool as a library
// see README.md
- Add support for multi-format output (instead of just tables). You'd have to send in a PR to address this.
from cachetool.
Closing in favor of #81
from cachetool.
Related Issues (20)
- Support for monolog/monolog ^3.0 HOT 1
- Exclude path not working with absolute path HOT 1
- PHP 8.2: ${var} string interpolation deprecated HOT 1
- apcu regex format validation HOT 1
- continuous updating message HOT 3
- Question: Can you install cachetool on 1 specific domain/subdomain instead of entire server HOT 2
- Question: About invalidation of specific scripts HOT 3
- Question: Getting weird errors HOT 2
- Heads up: This fails to work as of Rocky Linux 9.2 (In FastCGI.php line 114: Access Denied) HOT 22
- Invalid version string "@package_version@" with consolidation/self-update 2.2.0 HOT 5
- Tag 8.6.0 was removed, but still referenced in Packagist HOT 4
- opcache:reset FastCGI error: Unable to connect to FastCGI application: Permission denied (/run/php/php8.2-fpm.sock) HOT 1
- Question: Version compatibility HOT 1
- Not clearing cache after upgrading to php 8.1.13 + cachetool 9.1 HOT 7
- Apcu key fetch problem
- Add support for Symfony 7 HOT 6
- Question/request: Split cache library from CLI tool?
- It would be useful if output from opcache:status:scripts could be sorted by hits or memory HOT 1
- apcu get keys by regex HOT 1
- DX: success response HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cachetool.